在文本对象一般用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
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
你不是要向binary类型的字段里面写入数据吗? 你可以尝试着先向里面写入一些数据试试看; update [] set xx=0x... ... where
另外使用ado2.5以上有stream流类型的类,可以专门对这类数据进行快速读取和存储。
AppendChunk已经不再使用了。
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
你可以尝试着先向里面写入一些数据试试看;
update [] set xx=0x... ... where