![]() |
AW: Keine Fehlermeldung bei asynchronem Aufruf
Es gibt da noch eine Möglichkeit:
Lass die Abfrage vorab vom Server prüfen! Bei MSSQL und MySQL geht das auf jeden Fall, bei Oracle müsste es ähnlich wie bei MySQL gehen mit
Code:
Wenn das dann funktioniert, kannst du es getrost abschicken.
PREPARE
Wenn du direkten Einfluss auf die Erzeugung des Select hast, dann kannst du auch wie folgt im Vorfeld prüfen lassen Originalabfrage:
Code:
Prüfabfrage
select fielda, fieldb
from foo where fielda = 1 or fieldb = 4
Code:
Geht aber nur dann wirklich gut, wenn die Erstellung der Abfrage-Syntax weitesgehend in deiner Hand liegt
select fielda, fieldb
from foo where 1=0 and ( fielda = 1 or fieldb = 4 ) |
AW: Keine Fehlermeldung bei asynchronem Aufruf
Das mit EOF und Prepared werde ich mal ausprobieren. Danke!
EDIT: @Sir Rufo: Gerade erst Deinen post gesehen. Das ist ein cooler Trick. Auch dafür wieder danke! |
AW: Keine Fehlermeldung bei asynchronem Aufruf
Das mit dem EOF ist aber kein Hinweis auf einen Fehler.
Wenn eine leere Datenmenge zurückgeliefert wird, dann ist EOF auch True. Weiterhin macht der Wert EOF erst dann einen Sinn, wenn die Abfrage geöffnet wurde. In einem Fehlerfall (über ASync) ist die aber im Status dsOpening und da ist der Wert in EOF absolut unbrauchbar. EOF bedeutet hier ja am Ende der Datenmenge, aber welcher ... die kommt ja evtl. erst noch. Da fällt mir doch eine viel bessere Möglichkeit zum Testen der Abfrage ein:
Code:
select * from (
{ Code der zu prüfenden Abfrage } ) AS T where 1 = 0 |
AW: Keine Fehlermeldung bei asynchronem Aufruf
Wird immer besser! Bin leider noch nicht zum Testen gekommen, weil ich gerade wieder an einer anderen Ecke programmieren muss.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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