当然能,用LOADFROMFILE和SAVETOFILE

解决方案 »

  1.   

    在SQL帮助里有这样的一段话,说明是可以保存.doc文档的。具体怎样做我也不知道,你研究一下吧。二进制数据
    二进制数据由十六进制数表示。例如,十进制数 245 等于十六进制数 F5。在 Microsoft® SQL Server™ 2000 中,二进制数据使用 binary、varbinary 和 image 数据类型存储。指派为 binary 数据类型的列在每行中都是固定的长度(最多为 8 KB)。指派为 varbinary 数据类型的列,各项所包含的十六进制数字的个数可以不同(最多为 8 KB)。image 数据列可以用来存储超过 8 KB 的可变长度的二进制数据,如 Microsoft Word 文档、Microsoft Excel 电子表格、包含位图的图像、图形交换格式 (GIF) 文件和联合图像专家组 (JPEG) 文件。除非数据长度超过 8KB 时用 image 数据类型存储,一般宜用 varbinary 类型来存储二进制数据。建议列宽的定义不超过所存储的二进制数据可能的最大长度。
      

  2.   

    我现在的想法是:
    1.利用系统的文件共享办法,将需要的文档放在共享目录下,然后分配和数据库系统一样的操作权限,但是这样的话,似乎给系统管理造成难度,而且与数据库系统不协调,太脱节!
    2.利用数据库存储,先用代码将文档读出后,存入数据库中,在需要的时候,再用代码读出来,存到本地,格式为.doc的,再使用Word打开。但也不理想???
    不知道是否可行,大家给我点意见!也请高手指教有更好的办法?
      

  3.   

    可以试试以OLE对象的方式存进去
      

  4.   

    VB+ADO的方法:Private Function DatabaseToFile(ByVal DataField As ADODB.Field, ByVal vSaveAs As String, ByVal vFileExpendName As String) As String
    Dim fnum As Long, bytesleft As Long, bytes As Long
    Dim lSumSize As Long, lNowSize As Long
    Dim tmp() As Byte
        On Error GoTo ErrHandleDatabaseToFile
        If Trim(vSaveAs) = "" Then
            DatabaseToFile = GetTempFileName(vFileExpendName)
        Else
            DatabaseToFile = Trim(vSaveAs)
        End If
        
        fnum = FreeFile
        Open (DatabaseToFile) For Binary As fnum
        bytesleft = DataField.ActualSize
        
        lSumSize = CLng(bytesleft / 8192)
        
        Do While bytesleft
            bytes = bytesleft
            If bytes > 8192 Then bytes = 8192
            tmp = DataField.GetChunk(bytes)
            Put #fnum, , tmp
            bytesleft = bytesleft - bytes
            lNowSize = lNowSize + 1
            RaiseEvent TransmitData(lNowSize, lSumSize, False)
        Loop
        Close #fnum
        Exit Function
    ErrHandleDatabaseToFile:
        DatabaseToFile = ""
        Err.Clear
    End FunctionPrivate Function FileToDatabase(ByVal vDataField As ADODB.Field, ByVal vFileName As String)
    Dim fnum As Long, bytesleft As Long, bytes As Long
    Dim lSumSize As Long, lNowSize As Long
    Dim tmp() As Byte
        On Error GoTo ErrHandleFileToDatabase
        
        fnum = FreeFile
        Open vFileName For Binary As fnum
        bytesleft = LOF(fnum)
        lSumSize = CLng(bytesleft / 8192)
        Do While bytesleft
            bytes = bytesleft
            If bytes > 8192 Then bytes = 8192
            ReDim tmp(1 To bytes) As Byte
            Get #fnum, , tmp
            vDataField.AppendChunk tmp
            bytesleft = bytesleft - bytes
            lNowSize = lNowSize + 1
            DoEvents
            RaiseEvent TransmitData(lNowSize, lSumSize, True)
        Loop
        
        Close #fnum
        
        Exit Function
    ErrHandleFileToDatabase:
        Err.Clear
    End Function
      

  5.   

    可以有两个方案:
      一:只是保存word的地址在数据库里.
      二:把word内容保存在数据库中,可以用image字段.
    如果开发工具是pb,可以用ole,调用ole_1.Activate(OffSite!)
    可把该内容在word中打开,直接update该image字段,保存
    修改内容.
      

  6.   

    用一种语言编程实现,我用DELPHI解释,其它语言类似,sql server 字段用IMAGE,
    DELPHI中用
    TFormatfield(fields[doc]).loadfromfile('文件.doc');
    将.doc文件存到SQL SERVER的image字段
    用TFormatfield(fields[doc]).SAVETOFILE('文件.doc');将.doc文件从数据库读出来。
    具体你去查相应的编程语言的帮助,用loadfromstream,savetostream也可以。不只.doc,
    .bmp,.rtf等都可以存到IMAGE字段保存;sql server2000的IMAGE字段还能对.doc文件进行
    全文检索.
      

  7.   

    非常感谢wzbstudy(小兵) 、 fling_boy(andy--天意) 、pangpang01(冰儿) 、 newgoodlmy(newgoodlmy) ( ) 的帮助。
    我将开始实现,具体可能还要依据我的实际情况!
    谢谢!