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

转自 :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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值