VB 利用ADO的Stream对象在数据库进行写入与读出

1、stream只是一个媒介,它在数据库字段与实际的图片间充当一个搬运工作用。

      当读出时,图片字段写入stream中,,然后stream导出成一个实际图片

       当写入时,实际图片装入stream中,,然后字段再从steam中读取

      注意:这里写和读,是字段对stream的操作。从数据库中取出数据,相当于字段先写到stream中。

                                                                                       从外面写数据到数据库,相当于字段从stream中读取存盘。



2、利用rs.addnew和rs.update进行记录的新增和更新。



3、引用ADO 2.5或以上

Dim cn  As New ADODB.Connection
Dim rs  As New ADODB.Recordset
Dim stm As New ADODB.Stream

Private Sub Command1_Click() '读取
    cn.Open
    rs.Open "select * from 图书销售员 where 员工号='" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.RowSel, 1) & "'", cn, adOpenKeyset, adLockOptimistic

    If Not rs.EOF Then
        If IsNull(rs.Fields("照片")) Then
            Image1.Picture = LoadPicture("")
        Else
            stm.Open
            stm.Type = adTypeBinary
            stm.Write rs.Fields("照片")   '写进stream对象中
            stm.SaveToFile App.Path & "\22.gif", adSaveCreateOverWrite  '由stream导出成文件
            Image1.Picture = LoadPicture(App.Path & "\22.gif")
            stm.Close
        End If
    End If
    rs.Close
    cn.Close
End Sub

Private Sub Command2_Click() '写入
    cn.Open
    rs.Open "select * from 图书销售员 where 员工号='" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.RowSel, 1) & "'", cn, adOpenKeyset, adLockOptimistic

    If Not rs.EOF Then
        If IsNull(rs.Fields(3)) Then
            Image1.Picture = LoadPicture("")
            stm.Open
            stm.Type = adTypeBinary
            stm.LoadFromFile "D:\a.gif"  '实际文件装进stream
            rs.Fields(3).Value = stm.Read
            rs.Update
            stm.Close
        End If
    End If
    rs.Close
    cn.Close
End Sub

Private Sub Form_Load()
    cn.Open "Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=book;Data Source=ZHENG"
    Set MSHFlexGrid1.DataSource = cn.Execute("select * from 图书销售员")
    cn.Close
    Text1.Text = MSHFlexGrid1.RowSel
End Sub

Private Sub MSHFlexGrid1_SelChange()
    Text1.Text = MSHFlexGrid1.RowSel
End Sub






  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值