AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi id vom letzten insert
Thema durchsuchen
Ansicht
Themen-Optionen

id vom letzten insert

Ein Thema von Delphi-Phil · begonnen am 16. Jan 2009 · letzter Beitrag vom 16. Jan 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#1

id vom letzten insert

  Alt 16. Jan 2009, 09:52
Datenbank: mysql • Zugriff über: ado
Hallo Zusammen und einen guten Morgen,

wie kann ich nach einem inster mit einer ado query die id von dem eingefügten datensatz rausfinden und sie in eine var schreiben??
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: id vom letzten insert

  Alt 16. Jan 2009, 09:54
Gibts keine Property "LastAutoIncVal"? Oder funktioniert vlt. "SELECT LAST_INSERT_ID() FROM Tabelle"?
  Mit Zitat antworten Zitat
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#3

Re: id vom letzten insert

  Alt 16. Jan 2009, 10:02
und wie bekomme ich dann den query rückgabewert in die var lastid??
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: id vom letzten insert

  Alt 16. Jan 2009, 10:04
Hallo,

nuclearping hat Dir fast die korrekte Antwort gegeben.

Nach dem Einfügen eines neuen Datensatzes musst Du folgendes tun:
Delphi-Quellcode:
ADOQuery1.Close;
ADOQuery1.SQL.Text:='SELECT LAST_INSERT_ID()';
ADOQuery1.Open;
ShowMessage(Format('Letzte eingefügte ID: %d', [ADOQuery1.Fields[0].AsInteger]));
  Mit Zitat antworten Zitat
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#5

Re: id vom letzten insert

  Alt 16. Jan 2009, 10:20
so geht es jetzt! Danke!

jetzt lässt du es aber in einer Message anzeigen ich brauche es aber in einer Variable!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: id vom letzten insert

  Alt 16. Jan 2009, 10:25
Na dann weis es einer Variablen zu.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: id vom letzten insert

  Alt 16. Jan 2009, 10:25
Hallo,

wo ist jetzt das Problem? Ich denke Du willst programmieren? Ein bisschen Abstraktion gehört nun mal zum Geschäft.

Delphi-Quellcode:
function GetLastInsertID(aQry:TADOQuery):Integer;
begin
  with aQry do
  begin
    Close();
    SQL.Text:='SELECT LAST_INSERT_ID()';
    Open();
    Result:=Fields[0].AsInteger;
  end; // with aQry
end; // LastInsertID
Aufgerufen wird die Funktion wie folgt:
Delphi-Quellcode:
var lastId:Integer;
...
...
lastId:=GetLastInsertID(ADOQuery1);
  Mit Zitat antworten Zitat
Delphi-Phil

Registriert seit: 22. Jun 2007
410 Beiträge
 
#8

Re: id vom letzten insert

  Alt 16. Jan 2009, 10:56
geht es nicht irgendwie anders also mit dieser funktion??

Delphi-Quellcode:
Qry.Close;
Qry.SQL.Text:='SELECT LAST_INSERT_ID()';
Qry.Open;
und jetzt einfach das was rauskommt in eine variable! aber wie??
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: id vom letzten insert

  Alt 16. Jan 2009, 11:00
Hallo,

kannst Du nicht lesen?
Ich habe Dir doch die Lösung in meinem (vor)letzten Eintrag als fertige Funktion gepostet.
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#10

Re: id vom letzten insert

  Alt 16. Jan 2009, 11:11
Sicher das das geht?

Wenn
1. 2 User nahezu gleichzeitig einen Datensatz einfügen.
2. Einfügen beider Datensätze beendet ist.
3. Und dann beide lastID Abfragen

bekommen dann beide den von ihnen selbst eingefügt Datensatz???
Ich bezweifle das etwas.
Es sei denn macht das Einfügen und das LastID in einer Transaction.

In oracle gibts ne Lösung für das Problem.(So habe ich mir das mal erzählen lassen)
Man kann dort einen "Token" hohlen dieser ist dann reserviert
Wenn jetzt ein anderer User einfügt passiert das quasi auf der ID nach dem Token.
Ich kann dann auf den so eben geholten "Token"(ist wohl der ID wert) einfügen und
auch in weiteren SQLs auf den von mir eingefügten Datensatz über den Token bezug
nehmen.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:33 Uhr.
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