陈之平简历:请大家看这段代码如何把它转变成取出图片!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/07 03:11:04
Public FileName As String
Const BLOCKSIZE = 4096
Public ADOFld As ADODB.Field
Public conn As String
'取图片
Dim Chunk() As Byte
Dim strPath As String
Const ChunkSize As Integer = 2384
Dim DataFile As Integer, Chunks, Fragment As Integer
Dim MediaTemp As String
Dim lngOffset, lngTotalSize As Long
Dim I As Integer

Private Sub Command1_Click()
'显示打开文件的公用对话框,选择需要加入数据库的图片
CDlg.Filter = "位图(*.JPG)|*.JPG|(*.bmp)|*.bmp"
CDlg.ShowOpen
FileName = CDlg.FileName
PicBox.Picture = LoadPicture(FileName) '预览图片
End Sub

Private Sub Command2_Click()
With Adodc1
.ConnectionString = conn
.CommandType = 8
.RecordSource = "select * from 图片"
.Refresh
.Recordset.AddNew
Set ADOFld = .Recordset.Fields("相片")
Call SaveToDB(ADOFld, FileName)
.Recordset.Update
MsgBox "保存图片成功!!"
End With
End Sub

Private Sub Form_Activate()
' 取图片 Dim RS As New ADODB.Recordset
strPath = App.Path
End Sub

Private Sub Form_Load()
conn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=myhome;Data Source=(local)"
With Adodc1
.ConnectionString = conn
.CommandType = 8
.RecordSource = "select * from 图片"
.Refresh
End With
End Sub
Private Sub SaveToDB(ByRef Fld As ADODB.Field, DiskFile As String)
On Error Resume Next
Dim byteData() As Byte '定义数据块数组
Dim NumBlocks As Long '定义数据块个数
Dim FileLength As Long '标识文件长度
Dim LeftOver As Long '定义剩余字节长度
Dim SourceFile As Long '定义自由文件号
Dim I As Long '定义循环变量
SourceFile = FreeFile
Open DiskFile For Binary Access Read As SourceFile
FileLength = LOF(SourceFile) '得到文件长度
If FileLength = 0 Then '判断文件是否存在
Close SourceFile
MsgBox DiskFile & " 文件不存在"
Else
NumBlocks = FileLength \ BLOCKSIZE '得到数据块的个数
LeftOver = FileLength Mod BLOCKSIZE '得到剩余字节数
Fld.Value = Null
ReDim byteData(BLOCKSIZE) '重新定义数据块的大小
For I = 1 To NumBlocks
Get SourceFile, , byteData() ' 读到内存块中
Fld.AppendChunk byteData() '写入FLD
Next I
ReDim byteData(LeftOver) '重新定义数据块的大小
Get SourceFile, , byteData() '读到内存块中
Fld.AppendChunk byteData() '写入FLD
Close SourceFile '关闭源文件
End If
End Sub

savepicture()就可以了