bmp in Tabelle speichern



Servus zusammen,

also, ich habe ein kleines programm geschrieben um folgende aufgabenstellung
zu lösen:

*.ico umwandel in *.bmp in SQL-Server speichern

nichts weltbewegendes sollte man meinen, ... abwarten...

Weiter unten könnte ihr den code dazu finden, der wunderbar funzt. Das
problem stellt sich nun wie folgt dar:
Wenn ich die binärdaten wieder vom sqlserver auslese und auf die festplatte
schreibe, ist das file auch tatsächlich ein bmp. Dies habe ich mit gängigen
grafikprogrammen überprüft. Warum aber, erkennen diverse Reporttools wie
Crystal oder Access das bmp-format nicht wenn ich es direkt aus der datenbank
lese? Sie zeigen mir immer nur ein leeres bild an!
Der fehler liegt nicht in den reporttools, da ich es mit einer anderen
tabelle(die ist nicht von mir), in der sich einige bmp befinden, ausprobiert
habe.

für tipps und tricks - danke ich bereits jetzt

mfg eem monarch michael wetterich

Hier der Code:

Form mit folgenden Objekten
imagelist (Name:ImLiStueli) mit einem icon als Inhalt
Picturebox(Name:Picturebox1)
Picturebox(Name:Picturebox2)
Commandbutton(Name:command1)


Datenbank
Tabelle PICTEST
Feld id int
Feld pic image

****************************************************************************
Dim DBCon01 As ADODB.Connection
Dim adotemprs As ADODB.Recordset
Dim Bild As String
Dim FNr As Integer
Dim i As Long

Private sub command1_click()
'--------------------------------------------------------------------------------
'Als erstes ico in bmp umwandeln
Set Picture1.Picture = ImLiStueli.ListImages(1).Picture
'Diese Anweisung wandelt fast alles in ein bmp um
Set Picture2.Picture = Picture1.Image
'bmp speichern
SavePicture Picture2, App.Path & "\Pic1.bmp"
'--------------------------------------------------------------------------------
'Nun Pic1.bmp in die den SQL-Server schreiben
Set DBCon01 = New ADODB.Connection
DBCon01.CursorLocation = adUseClient
DBCon01.ConnectionString = "driver={SQL
Server};server=KICSQLTEST;database=TESTStandard"
DBCon01.ConnectionTimeout = 10
DBCon01.Open
Set adotemprs = New ADODB.Recordset
adotemprs.CursorLocation = adUseClient
adotemprs.CursorType = adOpenKeyset
adotemprs.LockType = adLockOptimistic
adotemprs.ActiveConnection = DBCon01
'Erstmal alles löschen
dbcon01.execute"Delete from pictest"
'Recordset öffnen
adotemprs.Open "select * from PICTEST"
'Bild binär einlesen
Open App.Path & "\Pic1.bmp" For Binary As #FNr
i = LOF(FNr)
Bild = Space(i)
Get #FNr, , Bild
close #FNr
'Jetzt in sqlserver schreiben
With adotemprs
.AddNew
.Fields("id") = 1234
.Fields("Pic").appendchunk = Bild
.Update
.Close
End With
'--------------------------------------------------------------------------------
adotemprs.close
Set adotemprs = Nothing
dbcon01.close
set dbcon01=nothing
end sub



.