'读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile "c:\test.doc"
End With
'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "表", iConc, adOpenKeyset, adLockOptimistic
.AddNew '新增一条记录
.Fields("保存文件内容的字段") = iStm.Read
.Update
End With
'完成后关闭对象
iRe.Close
iStm.Close
End Sub
'从数据库中读取数据,保存成文件
Sub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConc As String
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stm As ADODB.Stream
Private Sub SavePictureToDB(cn As ADODB.Connection)
'将BMP图片存入数据库
On Error GoTo EH
Set stm = New ADODB.Stream
rs.Open "select ImagePath,ImageValue from tbl_Image", cn, adOpenKeyset, adLockOptimistic
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
With stm
.Type = adTypeBinary
.Open
.LoadFromFile CommonDialog1.FileName
End With
With rs
.AddNew
.Fields("ImagePath") = Text1.Text
.Fields("ImageValue") = stm.Read
.Update
End With
rs.Close
Set rs = Nothing
Exit Sub
EH: MsgBox Err.Description, vbInformation, "Error"
End Sub
Private Sub LoadPictureFromDB(cn As ADODB.Connection)
'载数据库中读出BMP图片
On Error GoTo EH
Dim strTemp As String
Set stm = New ADODB.Stream
strTemp = "c:\temp.tmp" '临时文件,用来保存读出的图片
rs.Open "select ImagePath,ImageValue from tbl_image", cn, , , adCmdText
With stm
.Type = adTypeBinary
.Open
.Write rs("ImageValue")
.SaveToFile strTemp, adSaveCreateOverWrite
.Close
End With
Image1.Picture = LoadPicture(strTemp)
Set stm = Nothing
rs.Close
Set rs = Nothing
Exit Sub
EH: MsgBox Err.Description, vbInformation, "Error"
End Sub
先的引用Microsoft ActiveX DATA OBJECTS 中的一个~
然后,其实和上面一样,呵呵, 多个选择~
Public FileName As String
Private Sub Command2_Click()
CommonDialog1.ShowOpen
FileName = CommonDialog1.FileName
Call UpLoadPic
End Sub
Private Sub UpLoadPic()
On Error Resume Next
Dim stm As ADODB.Stream
Set stm = New ADODB.Stream
stm.Mode = adModeReadWrite
stm.Type = adTypeBinary
stm.Open
stm.LoadFromFile FileName
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("image").Value = stm.Read()
Adodc1.Recordset.Update
Adodc1.Refresh
stm.Close
Adodc1.Recordset.Close
If Err.Number > 0 Then
MsgBox Err.Description
End If
End Sub
Private Sub Form_Load()
Set Picture1.DataSource = Adodc1.Recordset
Picture1.DataField = "image"
End Sub
Private Sub InsPic()
On Error GoTo ervs
Set Stm = New ADODB.Stream
ErrMsg = True
Stm.Mode = adModeReadWrite
Stm.Type = adTypeBinary
Set Rs = Nothing
Set Rs = New ADODB.Recordset
Stm.Open
Stm.LoadFromFile FileName
Rs.AddNew
Rs.Fields("pict").Value = Stm.Read()
Rs.Update
ErrMsg = False
Stm.Close
Rs.Close
ervs:
If ErrMsg Then
Rs.Close
Stm.Close
MsgBox Err.Description
End If
End If
End Sub