问一个关于二进制图象文件存取的问题 请帮忙解答下,我要将一个表中的一个OLE对象(放的是一个二进制图象文件)取出来,并放到另一张表,请问VB代码怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的代码是这样的:Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\dangan.mdb;Persist Security Info=False"Adodc1.ConnectionTimeout = 30Adodc1.CommandTimeout = 30Adodc1.CommandType = adCmdTextAdodc1.RecordSource = "select * from photo where id=1"Adodc1.Refresh sqlstr = "insert into dangan(user_name,user_password,user_sex,user_beforename,user_age,user_birthday,user_address,user_contact,user_class,user_college,user_photo,user_beizhu,user_major,user_level)"sqlstr = sqlstr & " values('" & Text1.Text & "','" & Text12.Text & "','" & Combo1.Text & "','" & Text3.Text & "'," & Text2.Textsqlstr = sqlstr & ",'" & Text4.Text & "','" & Text7.Text & "','" & Text8.Text & "','" & Text9.Text & "',"sqlstr = sqlstr & "'" & Text10.Text & "','" & Adodc1.Recordset.Fields("photo").Value 这是从一个表中读出来的 & "','" & Text11.Text & "','" & Text5.Text & "','" & Text6.Text & "')"为什么不行 二进制字段不能直接用 insert 语句的。建议你用 Recordset 的 AppendChunk 方法。或者用流的方式写入。前面有很多这样的贴子,你应该先搜查一下。 从数据库读到二进制数组:bteContent是一个二进制数组。bteContent = objAdoRecS.Fields("imageFile").GetChunk(objAdoRecS.Fields("imageFile").ActualSize)从二进制数组写入数据库:objAdoRecS.Fields("imageFile").AppendChunk bteContent strReg是图片名select * from TABLERS是结果集Set StmPic = New ADODB.Stream StmPic.Type = adTypeBinary StmPic.Open StmPic.LoadFromFile (imgLogo.Picture) rs.AddNew rs.Fields("字段名").Value = strReg rs.Update StmPic.Close 哦,问下,二进制流不能用insert吗? DataReport做二维的表?不会啊? 为什么小键盘0到10不能正确显示? 還是關於VB和EXCEL的問題 *****请问用如何用程序,清空Acess数据库表中指定字段的内容???****** 怎样保存text内容,并在下次打开时能象书一样一页页翻看 对条形码打印机的编程,请给个例子,谢谢. 求助:如何得到“我的文档”的目录位置? ACCESS表转入SQL 如何做最好。 请教那位高人能帮我解决有关两个程序之间的关联的问题? 数据库加密无法打印? 不用ODBC连接数据库,连接SQL2000数据库代码怎么写? crystal report4.6问题??
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\data\dangan.mdb;Persist Security Info=False"
Adodc1.ConnectionTimeout = 30
Adodc1.CommandTimeout = 30
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from photo where id=1"
Adodc1.Refresh
sqlstr = "insert into dangan(user_name,user_password,user_sex,user_beforename,user_age,user_birthday,user_address,user_contact,user_class,user_college,user_photo,user_beizhu,user_major,user_level)"
sqlstr = sqlstr & " values('" & Text1.Text & "','" & Text12.Text & "','" & Combo1.Text & "','" & Text3.Text & "'," & Text2.Text
sqlstr = sqlstr & ",'" & Text4.Text & "','" & Text7.Text & "','" & Text8.Text & "','" & Text9.Text & "',"
sqlstr = sqlstr & "'" & Text10.Text & "','" & Adodc1.Recordset.Fields("photo").Value 这是从一个表中读出来的 & "','" & Text11.Text & "','" & Text5.Text & "','" & Text6.Text & "')"为什么不行
建议你用 Recordset 的 AppendChunk 方法。
或者用流的方式写入。
前面有很多这样的贴子,你应该先搜查一下。
bteContent是一个二进制数组。bteContent = objAdoRecS.Fields("imageFile").GetChunk(objAdoRecS.Fields("imageFile").ActualSize)从二进制数组写入数据库:objAdoRecS.Fields("imageFile").AppendChunk bteContent
select * from TABLE
RS是结果集
Set StmPic = New ADODB.Stream
StmPic.Type = adTypeBinary
StmPic.Open
StmPic.LoadFromFile (imgLogo.Picture)
rs.AddNew
rs.Fields("字段名").Value = strReg
rs.Update
StmPic.Close