Hallo Dirk
ich hoffe ich habe jetzt den relevanten Code dazu gefunden. Ich habe diesen Teil im Nezt gefunden und ihn nach meinen Bedürfnissen angepasst. Was die function AddImage genau macht kann ich nicht sagen.
Ich hoffe du kannst damit was anfangen. Die Datenbank arbeitet mit ADO.
Besten Dank
Jürgen
Select Case AddImage(objFbS.rs_init_FbS, "dbf_FbS_Image_large", pic_FsB_large, _
com_CD, txt_FileName_Image) Public Function AddImage(pRecSet As Recordset, pField As String, pPic As _
PictureBox, pCom As CommonDialog, pTxt As TextBox) As Boolean
Dim rsImage As Recordset
Dim lOffset As Long
Dim lSize As Long
Dim sPath As String
Dim nHandle As Integer
Dim lSubChunks As Long
Dim Chunk() As Byte
Dim nFragmentOffset As Integer
Dim i As Integer
Dim lChunks As Long
Dim lKey As Long
Dim sSQL As String
On Error GoTo cmdAddImage_Error
pCom.Filter = "(*.bmp;*.ico;*.jpg)|*.bmp;*.ico;*.jpg"
pCom.ShowOpen
If pCom.FileName <> "" Then
AddImage = True
gsFileName = pCom.FileName
pTxt.Text = gsFileName
Set pPic.Picture = LoadPicture(gsFileName)
nHandle = FreeFile
Open gsFileName For Binary Access Read As nHandle
lSize = LOF(nHandle)
If nHandle = 0 Then
Close nHandle
End If
lChunks = lSize \ conChunkSize
nFragmentOffset = lSize Mod conChunkSize
ReDim Chunk(nFragmentOffset)
Get nHandle, , Chunk()
pRecSet(pField).AppendChunk Chunk()
ReDim Chunk(conChunkSize)
lOffset = nFragmentOffset
For i = 1 To lChunks
Get nHandle, , Chunk()
pRecSet(pField).AppendChunk Chunk()
lOffset = lOffset + conChunkSize
txtByteCount = lOffset
DoEvents
Next
Else
AddImage = False
End If
Exit Function
cmdAddImage_Error: MsgBox "AddImage" & err.Description & err.Number
'err: MsgBox err.Number & " " & err.Description
End Function Bilder laden :
LoadImage objFbS.rs_init_FbS, "dbf_FbS_Image_large", pic_FsB_large Public Sub LoadImage(recset As Recordset, pField As String, picbox As _
PictureBox)
Dim lSize As Long
Dim varChunk() As Byte
Dim lOffset As Long
Dim sPath As String
Dim nHandle As Integer
Dim iChunks As Integer
Dim nFragmentOffset As Integer
Dim sFile As String
Dim txtByteCount As Long
Dim i As Integer
'Debug.Print recset.GetString(, 150, "; ")
'On Error GoTo cmdLoadImage_Click_Error
Screen.MousePointer = vbHourglass
nHandle = FreeFile
sPath = App.Path & "\Image_Output"
sFile = sPath & "\output.bin"
lSize = recset(pField).ActualSize
Select Case lSize
Case Is <> 0
Open sFile For Binary Access Write As nHandle
'lSize = recset(pField).ActualSize
iChunks = lSize \ conChunkSize
nFragmentOffset = lSize Mod conChunkSize
ReDim Buffer(nFragmentOffset) As Byte
varChunk() = recset(pField).GetChunk(nFragmentOffset)
Put nHandle, , varChunk()
lOffset = nFragmentOffset
For i = 1 To iChunks
ReDim varChunk(conChunkSize) As Byte
varChunk() = recset(pField).GetChunk(conChunkSize)
Put nHandle, , varChunk()
lOffset = lOffset + conChunkSize
txtByteCount = lOffset
DoEvents
Next
Close nHandle
Set picbox.Picture = LoadPicture(sFile, , vbLPColor)
Case Else
'*
Set picbox.Picture = LoadPicture()
'*
End Select
Exit_cmdLoadImage_Click:
Screen.MousePointer = vbDefault
Exit Sub
cmdLoadImage_Click_Error:
#If gnDebug Then
Stop
Resume
#End If
'HandleError "cmdLoadImage_Click", err.Description, err.Number, gErrFormName
Resume Exit_cmdLoadImage_Click
End Sub
Beitrag wurde zuletzt am 26.07.09 um 13:31:20 editiert. |