Einzelnen Beitrag anzeigen

NetSonic

Registriert seit: 10. Mai 2007
124 Beiträge
 
Delphi 10 Seattle Professional
 
#1

PostgreSQL - Keine ID nach Insert

  Alt 1. Aug 2009, 09:03
Datenbank: PostgreSQL • Version: 8.3 • Zugriff über: TADO und ODBC
Hallo!

Ich habe hier ein Problem mit meinem Programm und der PostgreSQL-Datenbank.
Ich nutzte zur Verbindung mit der Datenbank den PostgreSQL ODBC-Treiber und die TADO-Komponenten (TADOConnection, TADODataSet und TADOQuery). Wenn ich jetzt in meine Kundendatenbank schreiben will, gehe ich wie folgt vor:

- Ich lade die Tabelle "tblcustomer" in eine DBGrid.
- Ich mache ein TADOQuery.Insert
- Ich lasse den Benutzer alle bekannten Daten eingeben.
- Anschließend mache ich ein TADOQuery.Post

Der Datensatz wird erfolgreich angelegt, allerdings ist das Feld "ID" (serial) immer 0, auch bei weiteren Inserts. Erst wenn ich die Query schließe und einen neuen SELECT mache, sind die Werte korrekt. Bekomme deswegen auch häufig den Fehler "Die zum aktualisieren angegebene Zeile ist nicht vorhanden oder wurde gelöscht".

Ich befürchte, dass es etwas mit den Transaktionen der PostgreSQL-Datenbank zu tun hat, aber ich hab zur Zeit überhaupt keine Idee, wie ich dafür sorgen kann, dass nach einem TADOQuery.Post sofort die Daten geschrieben werden und ich eine gültige ID erhalte.

Vielleicht hat da jemand von Euch einen Tipp?

Danke und Gruß
NetSonic
  Mit Zitat antworten Zitat