ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
782
782
EMPFEHLEN
-
Hallo ich habe Folgenden Code aus dem Netz. Nur wie schick ich das ganze in meine DB?
Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (lpTo As Any, lpFrom As Any, _
ByVal lLen As Long)
Dim B() As Byte, bildPfad As String
Private Sub cmd_ok_Click()
Dim rs As ADODB.Recordset, sql As String
Dim aa$, l&
sql = "select * from Bilder where fahr_nr = 1"
Set rs = SQL_recordset(cn, sql)
'Einlesen als String
Open bildPfad For Binary As #1
aa = Input(LOF(1), #1)
Close 1
'Umwandeln des Strings in ein ByteArray
l = Len(aa) - 1
ReDim B(0 To l)
Call CopyMemory(B(0), ByVal aa, l + 1)
' hier müsste jetzt der code für in die db zu schreiben kommen.
'z.B.
' rs.fields("bild").value = ...................
rs.Update
rs.Close
Set rs = Nothing
Unload Me
End Sub
-
17.03.04 13:57 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Schau mal hier:
http://www.freevbcode.com/ShowCode.asp?ID=1802
Gruß Tom
-
Das hat mir etwas weitergeholfen. Musste das ganze etwas umstricken.
Das speichern geht ohne Fehler.
Wenn ich jetzt die datei Laden möchte ist nichts in der datei temp.bmp.
Bekomme an der stelle:
Image1.Picture = LoadPicture("C:\Temp.bmp")
in LoadPictureFromDB
die Meldung unerwarteter Fehler.
Option Explicit
Dim rstRecordset As ADODB.Recordset
Dim cnnConnection As ADODB.Connection
Dim strStream As ADODB.Stream
Dim BildPfad As String
Public Function LoadPictureFromDB(rs As ADODB.Recordset)
Set strStream = New ADODB.Stream
strStream.Type = adTypeBinary
strStream.Open
strStream.Write rs.Fields("Bild").Value
strStream.SaveToFile "C:\Temp.bmp", adSaveCreateOverWrite
Image1.Picture = LoadPicture("C:\Temp.bmp")
Kill ("C:\Temp.bmp")
LoadPictureFromDB = True
End Function
Public Function SavePictureToDB(rs As ADODB.Recordset, _
sFileName As String)
Dim oPict As StdPicture
Set oPict = LoadPicture(sFileName)
rs.AddNew
Set strStream = New ADODB.Stream
strStream.Type = adTypeBinary
strStream.Open
strStream.LoadFromFile sFileName
rs.Fields("Bild").Value = strStream.Read
Image1.Picture = LoadPicture(sFileName)
SavePictureToDB = True
rs.Update
End Function
Private Sub cmd_Abruf_Click()
LoadPictureFromDB rstRecordset
End Sub
Private Sub cmd_ok_Click()
SavePictureToDB rstRecordset, BildPfad
End Sub
Private Sub cmdEinfügen_Click() ' Hier wird cmDialog geöffnet und pfad ausgewählt
On Error Resume Next
With cmDialog
.CancelError = True
.DialogTitle = "Datei Öffnen"
.Filter = _
"Jpegs(*.jpg)|*.jpg|Bitmaps(*.bmp)|*.bmp"
.ShowOpen
End With
BildPfad = cmDialog.FileName
On Error GoTo 0
Err.Number = 0
End Sub
Private Sub Form_Load()
Set cnnConnection = New ADODB.Connection
Set rstRecordset = New ADODB.Recordset
cnnConnection.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"SERVER=213.77.76.92;" & _
"DATABASE=base; " & _
"User Id=db1;Password=mypass;" & _
"OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
rstRecordset.Open "Select * from Bilder", cnnConnection, adOpenKeyset, adLockOptimistic
End Sub
-
17.03.04 16:03 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo!
Gibts bei diesem ADO.Stream vielleicht eine Close oder Flush Methode?
Gruß Tom
-
gibt es
-
was muss ich damit machen?
-
Ich habe jetzt einen Code,
der bei access ohne Probleme funktioniert.
Bei mySql bekomme ich nichts ind die db geschrieben.
Option Explicit
Dim cn As ADODB.Connection, rs As ADODB.Recordset, bildPfad As String
' Bild in Variable (String) lesen
Public Function ReadPicture(sFilename As String) _
As String
Dim F As Integer
Dim sInhalt As String
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close #F
ReadPicture = sInhalt
End Function
Private Sub cmdAnzeigen_Click()
ShowPicture (rs!bild)
End Sub
Private Sub Command1_Click()
On Error Resume Next
With cmDialog
.CancelError = True
.DialogTitle = "Datei Öffnen"
.Filter = _
"Jpegs(*.jpg)|*.jpg|Bitmaps(*.bmp)|*.bmp"
.ShowOpen
End With
bildPfad = cmDialog.FileName
rs.AddNew
rs.Fields("bild").Value = ReadPicture(bildPfad)
rs.Update
On Error GoTo 0
Err.Number = 0
End Sub
' Bild aus Datenbank laden und anzeigen
Public Sub ShowPicture(ByVal sInhalt As String)
Dim F As Integer
' Bilddatei temporär erstellen
F = FreeFile
Open App.Path & "\Bild.tmp" For Output As #F
Print #F, sInhalt;
Close #F
' Bild anzeigen
Image1.Picture = LoadPicture(App.Path & "\Bild.tmp")
' temporäre Datei löschen
Kill App.Path & "\Bild.tmp"
End Sub
Private Sub Form_Load()
Set cn = SQL_connect 'ODBC
Set rs = SQL_recordset(cn, "select * from Bilder") 'ODBC
End Sub
'-----verbindung zu DB ------------
Public Function SQL_connect() As ADODB.Connection
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=233.33.11.111;" _
& "DATABASE=xxx;" _
& "UID=xxx;" _
& "PWD=xxxx;" _
& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
conn.CursorLocation = adUseClient
conn.Open
Set SQL_connect = conn
End Function
Public Function SQL_recordset(conn As ADODB.Connection, sql As String) As ADODB.Recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim mystream As ADODB.Stream
Set mystream = New ADODB.Stream
mystream.Type = adTypeBinary
rs.Open sql, conn, adOpenStatic, adLockOptimistic
mystream.Open
Set SQL_recordset = rs
End Function
Ähnliche Themen
-
Hilfe bei Code (C++)
Von Hutzli im Forum C/C++Antworten: 1Letzter Beitrag: 31.05.10, 20:16 -
php code hilfe
Von thuglife im Forum PHPAntworten: 7Letzter Beitrag: 24.11.07, 14:53 -
Hilfe bei Code
Von pbag im Forum Flash PlattformAntworten: 9Letzter Beitrag: 30.07.05, 21:10 -
Brauche Hilfe - Code identifizieren - wozu der Code bestimmt ist
Von Lukasz im Forum PHPAntworten: 3Letzter Beitrag: 20.02.05, 20:58





Zitieren

Login





