![]() |
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 |
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. |
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:
Falls der Code nicht reicht, dann kann ich auch noch die ganze procedure zeigen.
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; 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 |
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. |
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 |
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? |
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. |
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