Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

ich habe das Problem, wie ich mit den Mitteln der ODBC-API nach einem erfolgreichen INSERT-Statement den automatisch generierten Primärschlüssel des eingefügten Datensatzes ermitteln kann. Ich brauche ihn für INSERTS in andere Tabellen. Zusätzlich muß die Lösung unabhängig von der verwendeten Datenbank sein, da es sich um eine generische ODBC-Schnittstelle handelt.

Der Code müßte also für MSAccess genause funktionieren wie für DB2 etc.

Bisher suche ich den gerade eingefügten Datensatz wieder heraus, das ist aber natürlich performancetechnisch suboptimal und funktioniert nur, wenn es keine Doubletten gibt.

Hat hier jemand einen Vorschlag für mich?

Schöne Grüße und vielen Dank,

das (noch) tapfere Schneiderlein

Hallo,

das ist Datenbank abhängig. Ich meine mal für mySQL davon gelesen zu haben, dass es da den Befehl get_last_id() gibt, aber der PK muss ja nicht zwingend numerisch sein, wenn z.B. der der PK aus 2 Feldern zusammensetzt, dann ist das nicht mehr so trivial.

HTH Phil

Moin,

das ist Datenbank abhängig.

Das ist mit Sicherheit so.

..., aber der PK muss ja nicht zwingend numerisch sein, wenn z.B. der der PK aus 2 Feldern zusammensetzt, dann ist das nicht mehr so trivial.

Im Prinzip richtig, aber er hat ja geschrieben das es ein Autowert ist.

Für MS-SQL-Server sollte "Select ident_current('tabelle')" funktionieren. Bei Oracle und AFAIK postgress müsste mal wohl die Sequence abfragen.

hth

Reinhold

Fast. Man macht es bei Oracle mit einem Trigger: Oracle Realisierung einer Auto ID - SQL-Tips.de

Dim

ich denke mit dem trigger setzt man den neuen autowert, er wollte aber wissen wie man ihn herausfindet. :D

ok,keine haarspalterreien.

Reinhold

Einigen wir uns darauf, dass er ihn ermitteln wollte um ihn anschließend zu setzen. :nett:

Dim

[EDIT]Hoppla. Hab ich doch glatt die Frage nicht ganz gelesen... Du hast natürlich recht. Er muss natürlich die Sequenz abfragen.[/EDIT]

Zusätzlich muß die Lösung unabhängig von der verwendeten Datenbank sein

Das geht nur, wenn Du eine Stored Function verwendest, die Du natürlich je nach DB anpassen musst, allerdings bleibt deine ODBC Schnittstelle dann einheitlich.

Unter Oracle musst Du wie gesagt sequenz_name.CURRVAL abfragen, mysql bietet wieder andere Funktionen dazu ebenso MSSQL.

Dim

... daß es nicht "nur" mit der ODBC-API geht.

Erstmal danke für die vielen Vorschläge, ich muß mir überlegen, was davon umsetzbar ist, denn es ist die Frage, ob wir in einem Kundenprojekt an die Datenbank herankommen.

Schöne Grüße,

schneiderlein

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.