Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie SQL (ADO) Fehler abfangen? (https://www.delphipraxis.net/106493-wie-sql-ado-fehler-abfangen.html)

PinkFloydFan 11. Jan 2008 18:11

Datenbank: Access • Zugriff über: ADO / Microsoft Jet 4.0

Wie SQL (ADO) Fehler abfangen?
 
Hallo ihr da draussen... :???:

Vielleicht kann mir einer von euch mal wieder weiterhelfen...

ich bastle aus veschiedenen Comboboxen eine String zusammen, den ich an ein ADODataSet sende..

Wenn nun aber Fehler in dem String sind, krieg ich zwar ne Meldung, aber die is vom Compiler.

wie schaffe ich es, diese Fehler per Hand abzufangen??


Delphi-Quellcode:
SQLString:= 'Select * from '+ ComboBoxBaugruppe.Text + '_'+ComboBoxECStand.Text+' where Sortbegr = '+ #39+Edit10.Text+#39;
    ADODataSet1.Active := False;
    ADODataSet1.CommandText := SQLString;
    try
      ADODataSet1.Open;
    except
      MessageDlg('Das und das stimmt nicht !!' , mtWarning, [mbOk], 0);
      //weiteres veanlassen
    end;
   
    ADODataSet1.Close;
    .
    .
    .
    //normalen Code weiterarbeiten..

Ich komme nie in die Bedingung "except", auch wenn Fehler in dem SQL-String sind...

warum?

mkinzler 11. Jan 2008 18:37

Re: Wie SQL (ADO) Fehler abfangen?
 
Im Debugger werden Exceptions trotz Handler angezeigt, wenn man das für diesen Fehler nicht deaktiviert. Ausserhalb des Debuggers wird der Fehler aber nicht angezeigt. Mit ADO kenn ich mich aber nicht so aus, es könnte auch möglich sein, das ADO den Fehler auf jedenfall anteigt.
BTW: Ich würde SQL-Parameter verwenden.

PinkFloydFan 11. Jan 2008 18:44

Re: Wie SQL (ADO) Fehler abfangen?
 
@mkinzler:

stimmt! du hast recht!!

ohne Debugger (also die *.exe wegstarten) komm ich plötzlich in meine Exception..


wie krieg ich das auch beim entwanzen hin, gibts da nen Compiler-Befehl??

wär ja umständlich, ständig die exe wegzustarten....


Edit// hab ich vergessen.. was meinst du mit SQL-Parametern?
bin ja auch nicht vertraut mit sql, ADO usw.. (learning by doing.. :thumb: )

mkinzler 11. Jan 2008 18:48

Re: Wie SQL (ADO) Fehler abfangen?
 
Kann man in der IDE abstellen (Debugger-Exceptions)

PinkFloydFan 11. Jan 2008 18:53

Re: Wie SQL (ADO) Fehler abfangen?
 
da gabs doch früher mal diese {$xy} - Anweisungen...

PinkFloydFan 12. Jan 2008 08:22

Re: Wie SQL (ADO) Fehler abfangen?
 
Ich weiss..

nach oben heben ist nicht erwünscht... :oops:

aber bitte mein Edit in Topic3 lesen...

weiss da keine/keiner was???


Zitat:

Edit// hab ich vergessen.. was meinst du mit SQL-Parametern?
bin ja auch nicht vertraut mit sql, ADO usw.. (learning by doing.. )

alzaimar 12. Jan 2008 08:57

Re: Wie SQL (ADO) Fehler abfangen?
 
Neue Frage, neuer Thread.

Hansa 12. Jan 2008 09:03

Re: Wie SQL (ADO) Fehler abfangen?
 
Zitat:

Zitat von PinkFloydFan
Edit// hab ich vergessen.. was meinst du mit SQL-Parametern?

Du sollst ein allgemeingültiges Select-Statement schreiben und da die Parameter mit konkreten Werten besetzen.

SQL-Code:
SELECT * FROM TABLEX WHERE :FELD=FELD
Rest : ParamByName bzw TDataSet in OH nachlesen.

PinkFloydFan 12. Jan 2008 12:01

Re: Wie SQL (ADO) Fehler abfangen?
 
das mit den allgemein gültigen Select-Statements ist mir schon klar...

es gibt aber (bei mir zumindest) noch tabellen, die erst zur Laufzeit von anderen Usern erstellt werden, die ich zur laufzeit noch nicht sehe, die dbEdits aber schon mitkriegen...


Ich möchte nix weiter als den Fehler

Zitat:

Entweder EOF oder BOF ist True oder der aktuelle Datensatz wurde gelöscht...
Der angeforderte Vorgang benötigt einen aktuellen Datensatz
abzufangen..


und damit meine eigene Behandlungs-Routine starten...

mkinzler 12. Jan 2008 12:02

Re: Wie SQL (ADO) Fehler abfangen?
 
So wäre es richtig
SQL-Code:
SELECT * FROM TABLEX WHERE FELD=:FELD;
oder
SQL-Code:
SELECT * FROM TABLEX WHERE Feld=@Feld;
je nach DBMS


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.
Seite 1 von 2  1 2      

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