如果 Field 对象 Attributes 属性中的 adFldLong 位被设置为真,则可以对该字段使用 AppendChunk 方法。请问:如何将Field 对象 Attributes 属性中的 adFldLong 位被设置为真(或者如何解决保存大文本对象系统提示”不支持该操作”的问题!)谢谢!

解决方案 »

  1.   

    建议用image类型,然后形成文件的形式进行读取。速度很快。
    另外使用ado2.5以上有stream流类型的类,可以专门对这类数据进行快速读取和存储。
    AppendChunk已经不再使用了。
      

  2.   

    在文本对象一般用TEXT类型!!代码如下:Option ExplicitPrivate Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long'工程->引用->Microsoft ActiveX Data Object 2.6 Library (后面为版本号)
    Dim cn As New ADODB.Connection, rs As New ADODB.Recordset'保存
    Private Sub Command1_Click()
        Dim stmCon As New Stream
        
        stmCon.Type = adTypeBinary
        stmCon.Open
        stmCon.LoadFromFile "C:\bb.doc"
            
        If rs.State = adStateOpen Then rs.Close
        rs.Open "SELECT * FROM TABLENAME", cn, adOpenDynamic, adLockOptimistic    rs.AddNew
        rs!ID = "12"
        rs!Name = "bb"
        rs.Fields("doc") = stmCon.Read
        rs.Update    stmCon.Close
        Set stmCon = Nothing
    End Sub'打开
    Private Sub Command2_Click()
        Dim stmCon As New Stream
        
        If rs.State = adStateOpen Then rs.Close
        rs.Open "SELECT * FROM TABLENAME", cn, adOpenForwardOnly, adLockReadOnly
        If Not rs.EOF Then
            stmCon.Type = adTypeBinary
            stmCon.Open
            stmCon.Write (rs.Fields("doc").Value)
            stmCon.SaveToFile "C:\aa.doc", adSaveCreateOverWrite
        End If    ShellExecute Me.hwnd, "open", "C:\aa.doc", vbNullString, vbNullString, 1
    End SubPrivate Sub Command3_Click()
        rs.Open "SELECT * FROM TEST", cn, 3, 3
    End SubPrivate Sub Form_Load()
    'On Error GoTo Errhandle
        'cn.ConnectionString = "Driver={SQL Server};SERVER=DataServer;DATABASE=zxzx;UID=information;PWD=information*&#"
        'cn.ConnectionString = "DBQ=D:\My Documents\db2.mdb;DefaultDir=" & _
            App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
            "DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
            "MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
            "Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=;"
        'cn.ConnectionString = "Driver={MySQL};Option=262144;port=1024;stmt=;Server=192.168.2.126;DataBase=mysql;User=root;Password="
        
        cn.Open
        
        Exit Sub
    Errhandle:
        MsgBox Err.Description, vbExclamation
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    On Error Resume Next
        rs.Close
        Set rs = Nothing
        cn.Close
        Set cn = Nothing
    End Sub
      

  3.   

    你不是要向binary类型的字段里面写入数据吗?
    你可以尝试着先向里面写入一些数据试试看;
    update [] set xx=0x... ... where
      

  4.   

    文本文件 你不会用TEXT的字段吗?  为什么非要用BIN字段呢?