Entwickler-Ecke
Datenbanken - Syntaxcheck eines Statements
Mikro79 - Fr 17.06.11 14:38
Titel: Syntaxcheck eines Statements
Hi,
ich habe folgendes Problem:
Ich möchte in einer VCL-Applikation einen Benutzer ein SQL-Statement eingeben lassen, welches dann später mal per ADO-Query ausgeführt werden soll.
Nun möchte ich nach der Eingabe des Statement gerne die Syntax prüfen.
Wenn es nur ein SELECTist, kein Problem, dann führ ich es halt aus un check soi, ob's in Ordnung ist.
Anders ist es ja bei UPDATE, DELETE usw. Gibt es hier eine Möglichkeit von Delphi aus das Statement zu prüfen (Syntax) ohne es auszuführen?
Ich verwende den MS-SQL-Server. Direkt im Management Studio kann ich ja schon ein Statement prüfen ohne, dass es direkt ausgeführt wird (Parse oder Debug).
Vielleicht weiss ja jemand Rat. Ich habe leider nichts dazu gefunden.
Danke schonmal für eure Mühe.
Gruß, Mirko
Nersgatt - Fr 17.06.11 14:58
Pack die Ausführung des Statments in eine Transaktion. Dann kannst Du sie ausführen und direkt danach ein Rollback machen
BenBE - Fr 17.06.11 16:41
Ist zwar nicht direkt auf SQL bezogen und auch nicht in Delphi, sondern PHP geschrieben, aber den Einstieg findest Du
bei mir im Blog [
http://blog.benny-baumann.de/?p=1002] erklärt.
Die Variante mit den Transaktionen ist zwar an sich interessant, da es aber einige Statements gibt, die nicht in einer Transaktion zurückgerollt werden können, solltest Du hier vorsichtig sein.
IIRC erlauben es viele DBMS aber ein Prepare auf ein Statement auszuführen, was das Statement zwar compiliert, aber noch nicht ausführt. Wie das konkret bei den diversen Datenbank-Layern jeweils angesprochen wird, müsstest Du aber schauen.
Mikro79 - Di 21.06.11 16:41
Moin,
vielen Dank für eure Antworten.
Hab das jetzt in einen "Begin Transaction...Rollback"- Block gepackt.
Ich denke mal, mit den hier vorkommenden Statements wird das funktionieren.
Gruß, Mirko
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!