九尾狐的九种异能能力:delphi 图片保存到数据库

来源:百度文库 编辑:高校问答 时间:2024/05/09 15:40:15

DELPHI 的语句不大熟悉,我给你写段VB的,你该一下变量的定义就可以了
Dim cnnImage As New ADODB.Connection
Dim rsImage As New ADODB.Recordset
Dim strSql As String

Dim Chunk() As Byte
Dim lngLengh As Long
Dim intChunks As Integer
Dim intFragment As Integer
Const ChunkSize = 1000
Const lngDataFile = 1
Private Sub cmdBrowse_Click()
'选择 JPG OR Bmp 文件
On Error Resume Next
With cmdlFilePath
.Filter = "JPG Files|*.JPG|Bitmaps|*.BMP"
.ShowOpen
txtFilePath.Text = .FileName
End With
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdLast_Click()
On Error Resume Next
rsImage.MoveLast
Call ShowPic
End Sub
Private Sub cmdNext_Click()
On Error Resume Next
rsImage.MoveNext
Call ShowPic
End Sub
Private Sub cmdPrev_Click()
On Error Resume Next
rsImage.MovePrevious
Call ShowPic
End Sub
Private Sub cmdSave_Click()
'保存文件到数据库中
If Trim(txtFilePath.Text) = "" Then
MsgBox "未选择文件.!!", vbInformation + vbSystemModal, "保存出错"
Exit Sub
End If
If (Dir(Trim(txtFilePath.Text)) = "") Then Exit Sub
'以二进制方式打开文件
Open Trim(txtFilePath.Text) For Binary Access Read As lngDataFile
lngLengh = LOF(lngDataFile) ' 文件大小
If lngLengh = 0 Then Close lngDataFile: Exit Sub
intChunks = lngLengh \ ChunkSize
intFragment = lngLengh Mod ChunkSize
'新建记录
rsImage.AddNew
ReDim Chunk(intFragment)
Get lngDataFile, , Chunk()
rsImage!picImage.AppendChunk Chunk()
ReDim Chunk(ChunkSize)
For I = 1 To intChunks
Get lngDataFile, , Chunk()
rsImage!picImage.AppendChunk Chunk()
Next I
rsImage.Update
Close lngDataFile
Call ShowPic
End Sub
Private Sub cmdFirst_Click()
On Error Resume Next
rsImage.MoveFirst
Call ShowPic
End Sub
Private Sub Form_Load()
rsImage.LockType = adLockOptimistic
rsImage.CursorType = adOpenKeyset
cnnImage.Provider = "Microsoft.Jet.OLEDB.4.0"
strSql = App.Path & "\Image.mdb"
cnnImage.Open strSql
strSql = "Select * From ImageStore"
rsImage.Open strSql, cnnImage
If (rsImage.BOF = True) And (rsImage.EOF = True) Then Exit Sub
Call cmdFirst_Click
End Sub
Public Sub ShowPic()
On Error Resume Next
Open "pictemp" For Binary Access Write As lngDataFile
lngLengh = rsImage!picImage.ActualSize
intChunks = lngLengh \ ChunkSize
intFragment = lngLengh Mod ChunkSize
ReDim Chunk(intFragment)
Chunk() = rsImage!picImage.GetChunk(intFragment)
Put lngDataFile, , Chunk()
For I = 1 To intChunks
ReDim Buffer(ChunkSize)
Chunk() = rsImage!picImage.GetChunk(ChunkSize)
'建立图片临时文件
Put lngDataFile, , Chunk()
Next I
Close lngDataFile
FileName = "pictemp"
Picture1.Picture = LoadPicture(FileName)
End Sub
GOOD LUCK
用软件改变世界,用代码书写人生,用思想创造未来!