您的位置:首页 > 数据库

VB ADO 用二进制方式来读写文件 入数据库 __________请参考(把文件(包括图片)存入数据库)

2006-04-20 11:28 826 查看
转自 :http://community.csdn.net/Expert/topic/4603/4603745.xml?temp=.7745935

那就用二进制方式来读写文件,请参考(把文件(包括图片)存入数据库):

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 Sub

Private Sub cmdSaveFile_Click()
saveFile App.Path & "/temp.jpg"
End Sub

Private 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 Sub

Private 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: