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