![]() |
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? |
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. |
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: ) |
Re: Wie SQL (ADO) Fehler abfangen?
Kann man in der IDE abstellen (Debugger-Exceptions)
|
Re: Wie SQL (ADO) Fehler abfangen?
da gabs doch früher mal diese {$xy} - Anweisungen...
|
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:
|
Re: Wie SQL (ADO) Fehler abfangen?
Neue Frage, neuer Thread.
|
Re: Wie SQL (ADO) Fehler abfangen?
Zitat:
SQL-Code:
Rest : ParamByName bzw TDataSet in OH nachlesen.
SELECT * FROM TABLEX WHERE :FELD=FELD
|
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:
und damit meine eigene Behandlungs-Routine starten... |
Re: Wie SQL (ADO) Fehler abfangen?
So wäre es richtig
SQL-Code:
oder
SELECT * FROM TABLEX WHERE FELD=:FELD;
SQL-Code:
je nach DBMS
SELECT * FROM TABLEX WHERE Feld=@Feld;
|
Re: Wie SQL (ADO) Fehler abfangen?
Genauer gesagt:
Wie kann ich einen Fehler im SQL-Statement
SQL-Code:
abfangen, wenn Dumm = 2 nicht existiert...
(select dasunddas from Tabelle1 where Dumm = 2)
|
Re: Wie SQL (ADO) Fehler abfangen?
Da hier kein Fehler sondern nur eine leere Datenmenge zurückgeliefert wird, kannst du diesen auch nicht abfangen.
|
Re: Wie SQL (ADO) Fehler abfangen?
aha...
da muss man aber auch die Daten abfragen können, ob die leer sind oder nicht... also quasi von hinten durch die Brust mitten ins Auge... :? |
Re: Wie SQL (ADO) Fehler abfangen?
Ich schreibe das normalerweise auch andersrum. Zumindest FB ists sowieso egal.
Wichtiger ist noch das hier : Zitat:
Muss das Open nicht auch vor das Try ? :gruebel: wg roter Kasten : DataSet.IsEmpty gibts bestimmt auch. |
Re: Wie SQL (ADO) Fehler abfangen?
Oder du überprüfst, die Anzahl der zurückgegebenen Datensätze. DataSet.RecordCount, native API, im Query (nur Anzahl oder als Erweiterung der Abfrage)
|
Re: Wie SQL (ADO) Fehler abfangen?
Zitat:
|
Re: Wie SQL (ADO) Fehler abfangen?
Jaa. endlich...
jetzt kommen wir in die richtige Bahn.. Ich weiss es nicht, wo das Open, Close, Try, Excecpt usw hin muss... deswegen meine Frage an die Expertinnen/Experten hier.. Ja ich gebs zu, ich schäme mich :oops: |
Re: Wie SQL (ADO) Fehler abfangen?
ich will ja nicht unverschämt sein,
aaaber ein klitzekleines Beispiel wär nict schlecht..... |
Re: Wie SQL (ADO) Fehler abfangen?
Für was? Grundsätzlich ist dein Programm doch nicht falsch, du kannst halt keinen Fehler abfangen, der nicht geworfen wird.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 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