AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzierbar)
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzierbar)

Ein Thema von hermannhass · begonnen am 12. Okt 2007 · letzter Beitrag vom 13. Okt 2007
Antwort Antwort
hermannhass

Registriert seit: 23. Dez 2006
Ort: Nähe Las Palmas
69 Beiträge
 
#1

Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzierbar)

  Alt 12. Okt 2007, 15:22
Datenbank: MS-SERVER • Zugriff über: dbx/ado
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:
 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');
ADO: adoConnection und adaDataset verknüpfen
und die Felder wie folgt aktivieren (per button)
Code:
 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]);
Fazit[u]:
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
Angehängte Dateien
Dateityp: zip testdbxqdo_795.zip (1,8 KB, 3x aufgerufen)
Entwickle SW mit Delphi 2006 und sql.
Lebe auf Gran Canaria.
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzier

  Alt 12. Okt 2007, 19:32
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 ?
Peter Schaible
  Mit Zitat antworten Zitat
hermannhass

Registriert seit: 23. Dez 2006
Ort: Nähe Las Palmas
69 Beiträge
 
#3

Re: Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzier

  Alt 13. Okt 2007, 01:04
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
Entwickle SW mit Delphi 2006 und sql.
Lebe auf Gran Canaria.
  Mit Zitat antworten Zitat
hermannhass

Registriert seit: 23. Dez 2006
Ort: Nähe Las Palmas
69 Beiträge
 
#4

Re: Fehler bei Blobfeldern mit DBExpress, BUG? (reproduzier

  Alt 13. Okt 2007, 13:55
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?


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).
Entwickle SW mit Delphi 2006 und sql.
Lebe auf Gran Canaria.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz