Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi INSERT - Statement wird nicht ausgeführt (https://www.delphipraxis.net/138143-insert-statement-wird-nicht-ausgefuehrt.html)

hoika 4. Aug 2009 11:00

Re: INSERT - Statement wird nicht ausgeführt
 
Hallo,

mit dem Thread wollte ich nur zeigen,
dass u.U. ParamByName('ID') nicht klappt.

1. Was bringt denn

ShowMessage(InsertEntryQuery.Params[0].Name)

als Namen überhaupt ?

2. Hast du jetzt ExecSQL oder Open genommen ?

3. Welche ZEOS-Version ?


Heiko

Mithrandir 4. Aug 2009 11:11

Re: INSERT - Statement wird nicht ausgeführt
 
Hi hoika,

Zitat:

mit dem Thread wollte ich nur zeigen,
dass u.U. ParamByName('ID') nicht klappt.
Ach so, ok. :)
Zitat:

1. Was bringt denn

ShowMessage(InsertEntryQuery.Params[0].Name)

als Namen überhaupt ?
"exp_type"

Ich habe daraufhin in das INSERT-STATEMENT "ID" und :id wieder eingefügt. Dann steht dort "id", der Rückgabewert ist aber 0. So kann das also nicht gehen.

Zitat:

2. Hast du jetzt ExecSQL oder Open genommen ?
ExecSQL;

Zitat:

3. Welche ZEOS-Version ?
Die ZEOSDBO 6.6.5 vom 25.5.09

mkinzler 4. Aug 2009 11:13

Re: INSERT - Statement wird nicht ausgeführt
 
Wenn du In-Parameter hast, ist der Rückgabeparamter natürlich der erste nach den Input-Parametern

Mithrandir 4. Aug 2009 11:20

Re: INSERT - Statement wird nicht ausgeführt
 
Ich hab deine Aussage jetzt so interpretiert:

Delphi-Quellcode:
EntryID := InsertEntryQuery.Params[9].AsInteger; //8 In-Parameter
und bin damit auf die Nase gefallen:

Code:
---------------------------
dgHaushaltsbuch
---------------------------
Listenindex überschreitet das Maximum (9)
---------------------------
OK  
---------------------------
:gruebel:

mkinzler 4. Aug 2009 11:21

Re: INSERT - Statement wird nicht ausgeführt
 
Achtung 0-indiziert
Delphi-Quellcode:
EntryID := InsertEntryQuery.Params[8].AsInteger; //8 In-Parameter

Mithrandir 4. Aug 2009 11:24

Re: INSERT - Statement wird nicht ausgeführt
 
Dann bekomme ich aber für

Delphi-Quellcode:
ShowMessage(InsertEntryQuery.Params[8].Name);
den Wert "exp_lux". Und der Rückgabewert ist 0. Das Showmessage wird nach dem ExecSQL; ausgeführt.

mkinzler 4. Aug 2009 11:25

Re: INSERT - Statement wird nicht ausgeführt
 
Dann scheint es ein Problem von Zeos zu sein.

Mithrandir 4. Aug 2009 11:27

Re: INSERT - Statement wird nicht ausgeführt
 
Zitat:

Zitat von mkinzler
Dann scheint es ein Problem von Zeos zu sein.

Argh... :wall:

Hmm, naja, einem geschenkten Gaul... Dann muss ich mir die ID halt über ein separates SELECT-Statement holen. Nicht schön, aber funktioniert hoffentlich...

nahpets 4. Aug 2009 11:28

Re: INSERT - Statement wird nicht ausgeführt
 
Hallo,

was für ein Wert steht denn nach dem Insert in RowsAffected? Sprich: Wurde das Insert überhaupt ausgeführt?

Habe gerade mal in den Sourcen von Zeos nach ExecSQL gesucht. Dort kann ich keine Stelle finden, an der ein von der Datenbank gelieferter Rückgabewert irgendwie an die Komponente zurückgegeben wird.
Habe nur kurz und oberflächlich gesucht, könnte daher was übersehen haben.
Prüf' doch bitte zuerst einmal, ob die Rückgabemöglichkeit von Werten der Firebirddatenbank mit den Zeoskomponenten überhaupt zu realisieren ist.

Bei TZStoredProc.ExecProc scheint es eine entsprechende Möglichkeit zu geben.
Eventuell eröffnet das Dir ja eine Hintertür, indem Du das Insert per Stored Procedure machst und der Prozedur die Parameter übergibst.

mkinzler 4. Aug 2009 11:30

Re: INSERT - Statement wird nicht ausgeführt
 
Oder Notfalls als Execution block in einem normalen Statement, dann als Ergebnis


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:56 Uhr.
Seite 2 von 3     12 3      

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