二进制流写到sql server的image字段。
以二进制流读出写成临时文件,用相应的工具打开。

解决方案 »

  1.   

    下面的代码把数据库中的image类型字段还原为图片文件。
    数据库用的是sql server自带的pubs
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim mstream As ADODB.StreamSet cn = New ADODB.Connection
    cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=;" _
        & "Initial Catalog=pubs;Data Source=MyServer"
    cn.OpenSet rs = New ADODB.Recordset
    rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimisticSet mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    mstream.Write rs.Fields("logo").Value
    mstream.SaveToFile "c:\publogo.gif", adSaveCreateOverWriters.Close
    cn.Close下面的代码把一幅图片保存到数据库中Set cn = New ADODB.Connection
    cn.Open "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=sa;" _
        & "Initial Catalog=pubs;Data Source=MyServer"Set rs = New ADODB.Recordset
    rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimistic
    rs.AddNewSet mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    mstream.LoadFromFile txtImagePath
    rs.Fields("pub_id") = "……" '在pubs库中,这个字段是主键,需要修改一个有效值rs.Fields("logo").Value = mstream.Read
    rs.Updaters.Close
    cn.Close