Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage ob Insert erfolgreich war (https://www.delphipraxis.net/144103-abfrage-ob-insert-erfolgreich-war.html)

diexsie 30. Nov 2009 11:01

Datenbank: MySql • Version: 5.x • Zugriff über: Zeos

Abfrage ob Insert erfolgreich war
 
Hätte mal eine Frage.

Wie kann man prüfen, ob ein Insert Statement erfolgreich ausgeführt wurde?
Benutze die Komponenten von Zeos.

Mein Code bis jetzt:
//query: TZQuery;
query.SQL.Clear;
query.SQL.Add('sqlstatement');
query.ExecSQL;

sowas wie:

var
result:bool;
result := query.SQL.Add('sqlstatement');

funktioniert leider nicht...

Irgendwelche Vorschläge? Vielen Dank schonmal in voraus.

DeddyH 30. Nov 2009 11:03

Re: Abfrage ob Insert erfolgreich war
 
Kannst Du AffectedRows abfragen? Ich bin gerade nicht sicher, ob das mit ZEOS geht.

Bernhard Geyer 30. Nov 2009 11:03

Re: Abfrage ob Insert erfolgreich war
 
Zitat:

Zitat von diexsie
Wie kann man prüfen, ob ein Insert Statement erfolgreich ausgeführt wurde?

Wenn's nicht erfolgreich ist wird die Datenbank/Komponente ein Exception werfen.

Gollum 30. Nov 2009 11:45

Re: Abfrage ob Insert erfolgreich war
 
Hallo,

ich kenne die ZEOS-Lib nicht aber so müsste es funktionieren:

Delphi-Quellcode:
query.SQL.Text:='sqlstatement';
query.ExecSQL;
if (query.RowsAffected=1) then ShowMessage('1 Datensatz erfolgreich eingefügt!');

diexsie 30. Nov 2009 12:35

Re: Abfrage ob Insert erfolgreich war
 
Habe es jetzt mit der Exceptionidee gelöst. Bei fehlerhaftem Insert wird die EZSQLException geworfen.
Leider kennt mein Delphi diese Exception nicht. Habe daher leider die Standardexception Klasse "Exception" verwendet.
Wie kann ich in mein Delphi die EZSQLException Klasse importieren?

alzaimar 30. Nov 2009 14:48

Re: Abfrage ob Insert erfolgreich war
 
Indem Du herausfindest, in welcher Unit diese Klasse deklariert ist und diese Unit in deine Uses-Klausel mit aufnimmst.
Zitat:

Zitat von Gollum
Delphi-Quellcode:
..
if query.RowsAffected > 1 then
  ShowMessage('1 Datensatz erfolgreich eingefügt!');

Wäre ja denkbar, das das INSERT mehr als eine Zeile einfügt bzw. die Anweisung Auswirklungen auf mehr als eine Zeile hat.

hoika 30. Nov 2009 20:08

Re: Abfrage ob Insert erfolgreich war
 
Hallo,

ich schätze mal, die Exception ist in

ZSysUtils

definiert.

Ein simples Suchen per Explorer oder Grep wäre ne Lösung.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 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