AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Keine Fehlermeldung bei asynchronem Aufruf
Thema durchsuchen
Ansicht
Themen-Optionen

Keine Fehlermeldung bei asynchronem Aufruf

Ein Thema von iGoA · begonnen am 11. Okt 2010 · letzter Beitrag vom 22. Okt 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Keine Fehlermeldung bei asynchronem Aufruf

  Alt 21. Okt 2010, 21:14
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:
PREPARE
Wenn das dann funktioniert, kannst du es getrost abschicken.

Wenn du direkten Einfluss auf die Erzeugung des Select hast, dann kannst du auch wie folgt im Vorfeld prüfen lassen
Originalabfrage:
Code:
select fielda, fieldb
from foo
where fielda = 1 or fieldb = 4
Prüfabfrage
Code:
select fielda, fieldb
from foo
where 1=0 and ( fielda = 1 or fieldb = 4 )
Geht aber nur dann wirklich gut, wenn die Erstellung der Abfrage-Syntax weitesgehend in deiner Hand liegt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
iGoA

Registriert seit: 9. Jul 2007
69 Beiträge
 
#12

AW: Keine Fehlermeldung bei asynchronem Aufruf

  Alt 22. Okt 2010, 13:42
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!

Geändert von iGoA (22. Okt 2010 um 13:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

AW: Keine Fehlermeldung bei asynchronem Aufruf

  Alt 22. Okt 2010, 14:32
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (22. Okt 2010 um 14:36 Uhr)
  Mit Zitat antworten Zitat
iGoA

Registriert seit: 9. Jul 2007
69 Beiträge
 
#14

AW: Keine Fehlermeldung bei asynchronem Aufruf

  Alt 22. Okt 2010, 14:54
Wird immer besser! Bin leider noch nicht zum Testen gekommen, weil ich gerade wieder an einer anderen Ecke programmieren muss.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:28 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