Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Fehlermeldung bei SQL (https://www.delphipraxis.net/27570-fehlermeldung-bei-sql.html)

Snyderburn 12. Aug 2004 11:41


Fehlermeldung bei SQL
 
Hi Leute,

ich bekomme bei meiner Abfrage zur Datenbank immer nach dem 2. Versuch folgende Fehlermeldung:

"Ungültiges BLOB-Handle im Datensatzpuffer."

Wenn ich die Abfrage zum ersten mal durchlaufen lasse, dann funktioniert alles ohne Probleme. Wird die Abfrage noch einmal durchgelaufen, dann kommt eben die Fehlermeldung.

mfg
Snyderburn

Bernhard Geyer 12. Aug 2004 11:44

Re: Fehlermeldung bei SQL
 
Weitere Infos wären hilfreich:

- Welche Datenbank (MS-SQL, ADS, ...)
- Welcher Zugriffsweg (ADO, BDE, native Komponenten)

Und ein bisschen Code wäre auch schön.

Snyderburn 12. Aug 2004 14:07

Re: Fehlermeldung bei SQL
 
Hier sind noch ein paar Information zu meinem Fehler. Ich benutze eine Interbase Firebird 1.0 Datenbank und ich benutzte die BDE Verbindung um auf die Datenbank von Progg aus zu gelangen.

Meinen Fehler habe ich schon etwas eingrenzen können. Hier ist erstmal ein Quellcode.

Delphi-Quellcode:
    dm1.q_dummy.close;
    dm1.q_dummy.Sql.clear;
    dm1.q_dummy.sql.add('Select * from Anschrift, info');
    dm1.q_dummy.SQL.add('where anschrift.firmenname = ''' + name + '''');
    dm1.q_dummy.sql.add('and anschrift.id_anschrift = info.id_anschrift');
    dm1.q_dummy.Open;
    dm1.t_info.first;
Falls der Code nicht reicht, dann kann ich auch noch die ganze procedure zeigen.

der Fehler passiert an letzter Stelle von dem Quellcode. Mich wundert es nur, dass er einmal ohne Probleme durch läuft und kurze Zeit später zeigt der den Fehler an.

mfg
Snyderburn

Bernhard Geyer 12. Aug 2004 14:52

Re: Fehlermeldung bei SQL
 
Der Code schaut eigentlich ganz gut aus.
Was passiert wenn statt "Select *..." die benötigten Felder angegeben werden.
Wird eigentlich aus dieser Query die Blobfelder ausgelesen?

Sonst würde mir nur Unverträglichkeiten Firebird-Treiber und BDE einfallen.

Snyderburn 12. Aug 2004 15:51

Re: Fehlermeldung bei SQL
 
Also das Problem habe ich jetzt erkannt, es liegt an dem DBMemo feld. Wenn ich dort den Datasource und Datafield entferne, dann funktioniert es alles ohne Probleme! Gibt es noch eine andere Möglichkeit als das DBMemo feld???

Snyderburn

Bernhard Geyer 12. Aug 2004 15:54

Re: Fehlermeldung bei SQL
 
Das sollte mit TDBMemo funktionieren, wenn das zugewiesene Feld wirklich eine Memofeld ist.
Wird wohl als Datentyp eine Blob zurückgeliefert und was is in Firebird für diese Spalte definiert?

Delix 12. Aug 2004 18:22

Re: Fehlermeldung bei SQL
 
Ich hatte auch mal so ein Problem. Ich verwende die Zeos-Komponeten und dort hies es: Invalid Blob-ID. Der Fehler kam immer dann, wenn das Memo nicht verändert worden war.

Ich habe das Problem mit einer Krücke gelöst:

Query.FieldByName('Text').Value:=Query.FieldByName ('Text').Value

Danach war der Fehler weg. Keine Ahnung was dahinter steckt.

Snyderburn 13. Aug 2004 13:46

Re: Fehlermeldung bei SQL
 
mhm... Dein Tip hat leider auch nicht geholfen! :cry:
Aber ich habe es jetzt trotzdem geschafft! Ich habe vorhin einfach mal aus jux in der Datenbank das spezielle Tabellenfeld gelöscht und einfach mal wieder neu angelegt. Siehe da, es hat funktioniert. Ich habe aber nix an den Eigenschaften von dem Feld geändert!!!!!

Trotzdem danke für Euere Hilfe.

Snyderburn


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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 by Thomas Breitkreuz