![]() |
Datenbank: MS-SERVER • Zugriff über: dbx/ado
Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzierbar)
Liste der Anhänge anzeigen (Anzahl: 1)
Folgenden gravierenden Fehler habe ich:
Umgebung: Win XP-Prof, MS-SERVER, Delphi 2007-Ger (Build2600, SP2) (auch auf einem anderen Rechner getestet) Vorraussetzung: MS-Server (hier auf Host "Buero"), eine Datenbank(hier 'sqlwawi') eine Tabelle(hier 'artikel') mit 3 Feldern: Artnr ein Varchar (ein string) * unwichtig Text ein Memo (gefüllt mit einem richtext) * unwichtig image eine Image (eine Bitmapgrafik) * Wichtig Ein Formular mit einem normalen TEdit('Artnr'), einem TRichEdit('richedit') und einem TImage('image') DBExpress: SQLConnection und SQLDataset verknüpfen und die Felder wie folgt aktivieren (per button)
Code:
ADO: adoConnection und adaDataset verknüpfen
sqldataset1.close;
sqldataset1.CommandText:=sqlcmd.text; sqldataset1.open; sqldataset1.first; artnr.Text:=sqldataset1.Fields[0].AsString; richedit.Text:=sqldataset1.Fields[1].AsString; image.Picture.Assign(sqldataset1.Fields[2]); // Zusätzlich * tblobfield(sqldataset1.Fields[2]).savetofile('c:\x.bmp'); und die Felder wie folgt aktivieren (per button)
Code:
Fazit[u]:
adodataset1.close;
adodataset1.Connection:=adoconnection1; adodataset1.CommandText:=sqlcmd.text; adodataset1.open; adodataset1.first; artnr.Text:=adodataset1.Fields[0].AsString; richedit.Text:=adodataset1.Fields[1].AsString; image.Picture.Assign(adodataset1.Fields[2]); Per ADO werden alle Felder korrekt gefüllt, auch das image Bei DBExpress wird das Image wird schwarz gefüllt! (alle anderen Felder ok) (*) Auch eine Savetofile('x.bmp') des Tblobfields enthält kein Bitmap! Ich wäre dankbar um eine Überprüfung.......D A N K E |
Re: Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzier
Hallo
was steht in der erzeugen x.bmp ? Wird die Datei überhaupt geschrieben und wenn, steht an den ersten beiden stellen BM ? Wie groß ist die Datei, so groß wie die erwartete bitmap ? |
Re: Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzier
In der Datei ist das Image genauso schwarz wieim Formular, die Daten aus der DB kommen definitiv nicht an!
Die Grösse entspricht genau der korrekten Grösse, die Werte sind alle Null |
Re: Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzier
Habe mir mal ein Hexdump erstellt vom Blobfield (selbe Tabelle,selber Datensatz, selbes Feld)
und den Inhalter der zurückgegeben Blobfelder verglichen! Per adodataset ist die Datei korrekt Per sqldataset ist die Datei fehlerhaft. Beide blobfelder enthalten gleich viel Daten(hier 1,19MB), also identisch gleiche Grösse! ABER:[b] Vom sqldataset sind nach 1024 Byte(100% identisch mit den ada-Daten) alle nachfolgenden Daten 0-Bytes. jaja, die magische 1024 Maxblobsize steht im config des connection und und im sqldataset auf -1 (auch andere werte wie 0 oder hohe Zahlen) ändern nichts! Der Feldtype im DBX wird auch korrekt als Blob erkannt... any Idea? :roll: PS: ich weiss, dass dies mal ein Fehler in dem erstem Delphi 7 war. Das Problem ist mit meinem D7 nicht und auch nicht mit D2006 nur in D2007 (SP2). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz