Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz ID herausfinden (https://www.delphipraxis.net/145752-datensatz-id-herausfinden.html)

alleinherrscher 8. Jan 2010 11:18

Re: Datensatz ID herausfinden
 
[edit]

Okay klar, verstanden. Allerdings wird der Parameter nicht von Firebird übergeben (mein ParamCount ist Null), jemand eine Idee, warum???

[/edit]

hoika 8. Jan 2010 11:31

Re: Datensatz ID herausfinden
 
Hallo,

warum siehst du nicht einfach in dem mitgelieferten Bsp nach ?

examples\src\FB20InsertReturning


Heiko

taveuni 8. Jan 2010 12:08

Re: Datensatz ID herausfinden
 
Zitat:

Zitat von hoika
Hallo,

#RSF#
nein, die Id wird auf dem Server beim Imsert erzeugt
und normalerweise nicht zurückgegeben.

Unter Paradox klappte das allerdings wirklich so,
aber unter einem SQL-Server normalerweise nicht.
Heiko

Bei MS SqlServer nach dem INSERT:
SELECT @@IDENTITY FELDNAME gibt die ID zurück.

hoika 8. Jan 2010 13:54

Re: Datensatz ID herausfinden
 
Hallo,

ja FB macht das über das returning.

Das S in SQL heisst halt leider nicht Standard.


Heiko

mkinzler 8. Jan 2010 14:37

Re: Datensatz ID herausfinden
 
Zitat:

Das S in SQL heisst halt leider nicht Standard.
Jedes DBMS ist halt anderst strukturiert

hoika 8. Jan 2010 15:24

Re: Datensatz ID herausfinden
 
Hallo,

schön gesagt.
;)


Heiko

alleinherrscher 8. Jan 2010 19:45

Re: Datensatz ID herausfinden
 
Ich hab nu ein Query mit folgendem Code im SQLs Feld:

SQL-Code:
INSERT INTO USER(
    VORNAME,
    NACHNAME,
    ALIAS,
    PASSWORT
)  
VALUES(
    :VORNAME,
    :NACHNAME,
    :ALIAS,
    :PASSWORT
)
RETURNING USER_ID

und führe in Delphi folgendes aus:

Delphi-Quellcode:
  Query1.Close;
  Query1.ParamByName('ALIAS').AsString:=edit1.Text;
  Query1.ParamByName('PASSWORT').AsString:=edit2.Text;
  Query1.Prepare;
  Query1.ExecQuery;
  Transaction.CommitRetaining;
Wenn ich mir Query1.ParamNames(i) für alle i< ParamCount ausgeben lasse kommt raus:

VORNAME
NACHNAME
ALIAS
PASSWORT

Eine USER_ID ist aber nicht vorhanden?!

mkinzler 8. Jan 2010 19:48

Re: Datensatz ID herausfinden
 
Welche Version der Komponente setzt du ein? Es scheint das diese Version das returning nicht kennt.
Btw heisst der Parameter auch anders Ret_xxx o.ä, deshalb besser über den Index gehen

alleinherrscher 8. Jan 2010 19:51

Re: Datensatz ID herausfinden
 
Zitat:

Zitat von mkinzler
Welche Version der Komponente setzt du ein? Es scheint das diese Version das returning nicht kennt.
Btw heisst der Parameter auch anders Ret_xxx o.ä, deshalb besser über den Index gehen

Benutze FIBPlus 6.9.6

Wenn der Parameter anders heißt, müsste es doch ne Fehlermeldung von der Datenbank geben, oder?

//edit ich seh gerade, dass der Interpretor hier im Forum das Wort "USER" in der SQL sprache blau hinterlegt. Also in Wirklichkeit heißt die Datenbank nicht USER sondern BENUTZER.

hoika 9. Jan 2010 07:12

Re: Datensatz ID herausfinden
 
Hallo,

gerade wollte ich wieder meckern,
dass du das Returning-Bsp nicht ansiehst.
Das ist wohl aber nur noch ne "Beta".

Die Returning ist ja kein Parameter,
probier mal FieldByName / Fields.


Heiko


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz