![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBX
Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war?
Hallo,
ich suche verzweifelt nach einer Möglichkeit abzufragen ob z.B. eine INSERT-Query erfolgreich durchgeführt, und der Datensatz gespeichert wurde. Hier eine Beispiel-Query:
SQL-Code:
Die Query wird erfolgreich ausgeführt und der Datensatz auch gespeichert. IBQuery1.Close; IBQuery1.SQL.Text := 'INSERT INTO TESTTABLE FIELD1 VALUES (12345)'; IBQuery1.Open; Mit Try/Except möchte ich nicht arbeiten, da es vielleicht Sekunden dauern kann bis ein eventuell fehlgeschlagener INSERT gemeldet wird (z.B. ausgelasteter Server...). Besten Dank! |
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Verwende ExecSQL statt Open. Und dann versuche einmal, RowsAffected Deines Query abzufragen (ich nehme einfach mal an, dass es das bei IBQuery auch gibt).
|
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Funktioniert - DANKE ! Hoffe das ist zuverlässig :)
Noch eine kleien Zusatzfrage: Wie verwende ich STRINGS bei folgender Zuweisung:
SQL-Code:
Leider klappt das so wie oben gezeigt nicht, kann man die Semikolons irgendwie "escapen" ?
IBQuery1.SQL.Text := 'INSERT INTO TESTTABLE FIELD1 VALUES ('Ich Bin ein String')';
DANKE! |
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Hi,
SQL-Code:
Greetz Data
IBQuery1.SQL.Text := 'INSERT INTO TESTTABLE FIELD1 VALUES (''Ich Bin ein String'');';
|
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Oder mit (SQL-)Parameter
Delphi-Quellcode:
IBQuery1.SQL.Text := 'INSERT INTO TESTTABLE FIELD1 VALUES (:str);';
... IBQuery1.ParamByName('str').Value := 'Ich bin ein String'; |
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Perfekt - Danke! Das mit den Parametern scheint zu funktionieren, zumindest gehen schonmal 16 Parameter. Ich melde mich nachher wieder mit dem Resultat :)
|
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Schlecht :( Mit den Parametern kann ich nur 18 Parameter definieren, dann passiert das gleiche wie oben, TdbQuery1.SQL.Text ist einfach leer.
Delphi-Quellcode:
Exception-Meldung: Tdbquery1: Parameter 'v2' nicht gefunden.
TdbQuery1.SQL.Text := 'INSERT INTO welddata (column2,column3,column4,column5,column6,column7,column8,column9,column10,column11,column12,column13,column14,column15,column16,column17,column18,column19) VALUES (:v2,:v3,:v4,:v5,:v6,:v7,:v8,:v9,:v10,:v11,:v12,:v13,:v14,:v15,:v16,:v17,:v18,:v19);';
TdbQuery1.ParamByName('v2').Value := '5644'; TdbQuery1.ParamByName('v3').Value := '5644'; TdbQuery1.ParamByName('v4').Value := '5644'; TdbQuery1.ParamByName('v5').Value := '5644'; TdbQuery1.ParamByName('v6').Value := '5644'; TdbQuery1.ParamByName('v7').Value := '5644'; TdbQuery1.ParamByName('v8').Value := '5644'; TdbQuery1.ParamByName('v9').Value := '5644'; TdbQuery1.ParamByName('v10').Value := '5644'; TdbQuery1.ParamByName('v11').Value := '5644'; TdbQuery1.ParamByName('v12').Value := '5644'; TdbQuery1.ParamByName('v13').Value := '5644'; TdbQuery1.ParamByName('v14').Value := '5644'; TdbQuery1.ParamByName('v15').Value := '5644'; TdbQuery1.ParamByName('v16').Value := '5644'; TdbQuery1.ParamByName('v17').Value := '5644'; TdbQuery1.ParamByName('v18').Value := '5644'; TdbQuery1.ParamByName('v19').Value := '5644'; Echt merkwürdig. Irgendwie scheint da was begrenzt zu sein. |
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
|
Re: Abfragen ob SQL-Query mit IBX-Komponente erfolgreich war
Hallo,
ja! DANKE klappt bestens. Resultat siehe ![]() *irgendwie hab ich versehntlich in den falschen Thread hier gepostet :oops: * |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 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 by Thomas Breitkreuz