Entwickler-Ecke

Datenbanken - in Local SQL Last_Insert_Id() abfragen?


Dusty - Mi 02.03.11 01:12
Titel: in Local SQL Last_Insert_Id() abfragen?
Kann man in Local SQL (Paradox/BDE) nach einem INSERT den vergebenen Indexwert abfragen?
In MySQL wäre das SELECT LAST_INSERT_ID() - aber in Local SQL finde ich da nichts.

- D5 Enterprise -


Gerd Kayser - Mi 02.03.11 09:46

user profile iconDusty hat folgendes geschrieben Zum zitierten Posting springen:
Kann man in Local SQL (Paradox/BDE) nach einem INSERT den vergebenen Indexwert abfragen?
In MySQL wäre das SELECT LAST_INSERT_ID() - aber in Local SQL finde ich da nichts.
Paradox/BDE hat ja schon fast antiquarischen Wert. Schau Dir mal hier den Beitrag von Dave vom 11. Januar 2010 an: http://php.net/manual/de/function.mysql-insert-id.php
Das sollte man sehr leicht nachbilden können. Außerdem wäre diese Lösung allgemein auch bei mehreren Clients, die auf eine Datenbank zugreifen, einsetzbar.


Dusty - Mi 02.03.11 12:42

Danke für deine Mühe Gerd, aber php spielt in deinem Link mit MySQL zusammen und ich wollte für meine Mini Anwendung einfach mal Local SQL von Delphi verwenden. Dieses scheint aber keine Variable zu führen, welche den letzten Index beinhaltet. Auch hat Local SQL keine LIMIT Klausel, was ich schade finde.

Antiquarisch - da gebe ich dir recht - aber funktioniert immer noch gut :-)


Gerd Kayser - Mi 02.03.11 13:00

user profile iconDusty hat folgendes geschrieben Zum zitierten Posting springen:
Danke für deine Mühe Gerd, aber php spielt in deinem Link mit MySQL zusammen und ich wollte für meine Mini Anwendung einfach mal Local SQL von Delphi verwenden.
Egal, ob php oder nicht: Die aktuelle Zeit (z. B. mit GetTickCount) in einer Variablen speichern. Bein Einfügen eines Datensatzes zusätzlich den Inhalt der Zeitvariablen mit in der Tabelle abspeichern. Danach ein Select mit den gerade eingefügten Daten inkl. Zeit. Dann kannst Du sicher sein, daß Du auch die richtige ID erhältst. Und genau so kann man das auch per SQL machen.


Dusty - Mi 02.03.11 22:47

Das könnte eine Lösung sein, ist aber nicht das, was ich suche.
Ich habe derzeit eine ähnliche Lösung (StartNr als Identifikationsmerkmal, geht auch),
aber eigentlich müsste es doch dem SQL Server auf einfache Art und Weise zu entlocken sein ...
oder eben nicht. Vermutlich gibt es Local SQL nicht her ...