Einzelnen Beitrag anzeigen

tburch

Registriert seit: 11. Okt 2004
5 Beiträge
 
#1

Direct Oracle Access und Autoinkrement

  Alt 11. Okt 2004, 12:57
Hallo, ich hänge gerade bei einem Problem fest was die Direct Oracle Access Komponenten im Zusammenhang mit Trigger und Sequenzen betrifft.

Ich habe eine Tabelle "Tbl_Mitglieder" mit den Attributen ID, Name, Vorname. Ich benutze eine OracleSession, ein OracleDataSet mit der SQL-Abfrage (SELECT Tbl_Mitglieder.*, Tbl_Mitglieder.ROWID FROM Tbl_Mitglieder ).
Und zeige die Daten über ein TDataSouce in einem DBGrid an was auch wunderbar funktioniert.

Mein Problem Betrifft den Attirbut ID welcher ein Autoinkrement ist. Dazu habe ich einen Trigger und eine Sequenz definiert.

Beim OracleDataSet gebe ich bei der Eigenschaft SequenceField das Feld "ID" an (On New Record). Wenn ich jetzt einen neuen Datensatz einfüge wird der Wert von "ID" immer um zwei erhöht.
Wenn ich den Trigger deaktiviere (Mit TOAD oder mit einem anderen Tool) funktioniert der Autoinkrement korrekt.

Ich nehme an dass die TOracleDataSet-Komponente die Funktion des Triggers übernehmen und dadurch doppelt Inkrementiert wird. Gibt es eine Möglichkeit das TOracleDataSet den Trigger in der DB berücksichtig ?

Mit freundlichen Grüssen

Thomas Burch, Informatik Lehrling
  Mit Zitat antworten Zitat