AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie kommt man an die ID des eingefügten Eintrages
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kommt man an die ID des eingefügten Eintrages

Ein Thema von kagi3624 · begonnen am 29. Jul 2021 · letzter Beitrag vom 31. Jul 2021
Antwort Antwort
tewes

Registriert seit: 31. Jan 2007
25 Beiträge
 
#1

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:01
Typischerweise (z.B. MySQL):
SELECT LAST_INSERT_ID();
  Mit Zitat antworten Zitat
kagi3624

Registriert seit: 3. Feb 2020
138 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:10
Typischerweise (z.B. MySQL):
SELECT LAST_INSERT_ID();
Aber das ist doch schon in dem insert Statement schon drin mit dem return ID, vielleicht bin ich auch falsch hier in diesem Subforum?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.228 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:11
Das RETURNING liefert doch ein Ergebnis, genau wie eine SELECT-Query. Bekommst du da nichts zurück?
  Mit Zitat antworten Zitat
kagi3624

Registriert seit: 3. Feb 2020
138 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:18
Das RETURNING liefert doch ein Ergebnis, genau wie eine SELECT-Query. Bekommst du da nichts zurück?
Also, wenn ich das Statement im Delphi code ausführe mit der TZQuery Komponente, dann bekomme ich den Eintrag auch in die Datenbank, und es gibt auch keine Fehler, ich weiß aber nicht wie ich an die ID des eingefügten Eintrags komme. Ich dachte es ist ja schon irgendwie drin in der Query abgespeichert und ich muss es nur irgendwie abholen. So wenn man normal ein Select statement hat, würde man ja sowas haben:

Code:
i := zQuery.FieldByName('ID').AsInteger;
Hier wird mir aber gesagt, dass so ein Feld nicht existiert nach dem ausführen des Statements.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.675 Beiträge
 
Delphi 12 Athens
 
#5

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:22
Wie wäre es mal mit etwas mehr Code?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
kagi3624

Registriert seit: 3. Feb 2020
138 Beiträge
 
Delphi 6 Enterprise
 
#6

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:26
Wie wäre es mal mit etwas mehr Code?
Code:
          aQuery.Close;
          aQuery.SQL.Clear;
          aQuery.SQL.Text := 'INSERT INTO MYTABLE (first, second, last) values (:val1, :val2, :val3) returning ID';
          aQuery.ParamByName('val1').AsInteger := 4;
          aQuery.ParamByName('val2').AsString  := 'bla';
          aQuery.ParamByName('val3').AsInteger := 100;
          aQuery.ExecSQL; //bis hier her funktioniert es

          i := aQuery.FieldByName('ID').AsInteger; // Feld nicht gefunden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.675 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 10:47
Versuch mal
aQuery.Open; statt
aQuery.ExecSQL;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ron67

Registriert seit: 10. Sep 2018
Ort: Großraum Nürnberg
13 Beiträge
 
Delphi 12 Athens
 
#8

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 11:08
Ich kenne das so:

letzteId := dmMain.connection.GetLastAutoGenValue('id');
  Mit Zitat antworten Zitat
kagi3624

Registriert seit: 3. Feb 2020
138 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 29. Jul 2021, 11:30
Versuch mal
aQuery.Open; statt
aQuery.ExecSQL;
THX! Hat funktioniert!

Gibt es das unter ZEOS auch? Ich kenne es so nur bei FireDAC.
Zumindest bei meiner Komponente ging es nicht.

Geändert von kagi3624 (29. Jul 2021 um 11:33 Uhr)
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
223 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Wie kommt man an die ID des eingefügten Eintrages

  Alt 30. Jul 2021, 11:32
Das RETURNING liefert doch ein Ergebnis, genau wie eine SELECT-Query. Bekommst du da nichts zurück?
Code:
i := zQuery.FieldByName('ID').AsInteger;
Hier wird mir aber gesagt, dass so ein Feld nicht existiert nach dem ausführen des Statements.

ja , es wird ja kein Select ausgeführt also keine Ergebnisswerte zum Abfragen geöffnet

bei IbDac UniDac geht das So
Ii := zQuery.ParambyName('RET_ID').AsInteger;

das "RET_" wird von IBDac hinzugefügt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 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