不用流,也不用.AppendChunk,直接用SQL语句可不可以!如可以怎么用!
解决方案 »
- 如何在代码中操作同一窗口一类控件
- 求一段组合的代码
- 100分请教:ScrollBar控件到头了,change事件无法触发,还有其他事件能得知用户在点击scrollbar吗?我想做一个循环滚动的scrollbar,滚动
- 请问哪有水晶报表可以下载?(要最稳定的版本并且要有注册码和没有时间限制)!急!急!急!
- VB 怎样打开 指定的 TCP端口?
- 求一份 工资管理系统 源码参考一下!
- 很有挑战性!数据库新概念!
- Access数据库文件,两个表数据间Copy
- !!!!!!!!!!来这里捣乱的家伙,您走好!!!!!!!!!!!!!!
- 斑竹小草请进~~~~~
- 请问能不能使用WMI修改服务的启动模式?急急急,在线等!谢谢!!
- 内码转换(Shift-JIS -> GBK)中遇到的问题, 有经验的大师请看过来
但是这样得不偿失,性能下降很多。
------------------------------
那就用二进制方式来读写文件,请参考(把文件(包括图片)存入数据库):Dim cn As New ADODB.Connection,rs As New ADODB.Recordset
Private Sub Form_Load()
cn.CursorLocation = adUseClient
'这里给的是sql库的连接,具体的数据库连接请自己改过来,如果是Access库,只改数据库的连接即可
cn.Open "Provider=SQLOLEDB.1;Password=;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=ljx"
End SubPrivate Sub cmdSaveFile_Click()
saveFile App.Path & "\temp.jpg"
End SubPrivate Sub cmdReadFile_Click()
readFile App.Path & "\temp1.jpg"
End Sub'保存文件到数据库
Private Sub saveFile(Byval strFile As String)
Dim tmp() As Byte
Dim lngFile As Long
If rs.State=adStateOpen Then rs.Close
rs.Open "select * from test where 1<>1", cn, adOpenDynamic, adLockOptimistic
lngFile = FreeFile
Open strFile For Binary As #lngFile
ReDim tmp(LOF(lngFile))
Get #lngFile, , tmp
Close #lngFile
rs.AddNew
rs.Fields("ID").Value="001"
rs.Fields("pic").Value = tmp
rs.Update
End Sub'读取数据库的文件,保存到硬盘
Private Sub readFile(Byval strFile As String)
Dim tmp() As Byte
If rs.State=adStateOpen Then rs.Close
rs.Open "select * from test where [ID]='001'", cn
ReDim tmp(rs.Fields(0).ActualSize) '返回2进制文件的字节长度
tmp = rs.Fields("pic").Value
Open strFile For Binary As #1
Put #1, , tmp
Close #1
End SubPrivate Sub Form_Unload(Cancel As Integer)
If rs.State<>adStateClosed Then rs.Close
If cn.State<>adStateClosed Then cn.Close
Set rs = Nothing
Set cn=Nothing
End Sub
如果你非要用SQL语句的话,必须保证你的值也是字符串,并且在SQL规定的长度之内。
这些你做到了,那么就能如你所愿。