Oracle-Sequenz zählt 2 hoch wenn sie aus Access 2007 aufgerufen wird
Hallo zusammen,
ich habe hier eine Anwendung mit einem Access Frontend und einer Oracle 10 Express Datenbank. Bisher lief das Frontend unter Access 97. Jetzt möchten wir es gerne auf Access 2007 updaten. Dabei ist uns etwas sehr merkwürdiges aufgefallen.
Wenn wir unsere Oracle-Sequenzen aus Access 2007 aufrufen erhöht sich der Wert immer um 2 anstatt 1. Die gleiche Sequenz aus Access 97 mit dem gleichen ODBC Treiber aufgerufen funktioniert genau wie gewünscht. Laut ODBC-Tracing werden die Abfragen auch tatsächlich 2 mal ausgeführt. Warum ist das so?
Die Sequenzen sehen alle ungefähr so aus:
CREATE SEQUENCE "SEQ_TEST" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 7820 NOCACHE ORDER NOCYCLE
Die Pass-Through-Abfragen alle so:
select User.SEQ_TEST.nextval from dual;
ich habe noch einige Sachen ausprobiert und habe festgestellt, dass die Sequenz richtig hochgezählt wird wenn ich das z.B. auf diese Art sofort in die Tabelle schreibe:
insert into Schema.Tabelle (Feld1, Feld2)
values (Schema.Sequenz.nextval, 'test');
Das liegt meiner Meinung nach daran, dass Oracle ja schon dafür zuständig ist den Wert in die Tabelle zu schreiben.
Hat jemand von Euch schonmal ein ähnliches Verhalten beobachtet oder hat eine Idee woran das liegen könnte? Ich habe keine Lust alle Sequenzen umzuschreiben
Vielen Dank schonmal im Voraus
Die Werdende
ich habe hier eine Anwendung mit einem Access Frontend und einer Oracle 10 Express Datenbank. Bisher lief das Frontend unter Access 97. Jetzt möchten wir es gerne auf Access 2007 updaten. Dabei ist uns etwas sehr merkwürdiges aufgefallen.
Wenn wir unsere Oracle-Sequenzen aus Access 2007 aufrufen erhöht sich der Wert immer um 2 anstatt 1. Die gleiche Sequenz aus Access 97 mit dem gleichen ODBC Treiber aufgerufen funktioniert genau wie gewünscht. Laut ODBC-Tracing werden die Abfragen auch tatsächlich 2 mal ausgeführt. Warum ist das so?
Die Sequenzen sehen alle ungefähr so aus:
CREATE SEQUENCE "SEQ_TEST" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 7820 NOCACHE ORDER NOCYCLE
Die Pass-Through-Abfragen alle so:
select User.SEQ_TEST.nextval from dual;
ich habe noch einige Sachen ausprobiert und habe festgestellt, dass die Sequenz richtig hochgezählt wird wenn ich das z.B. auf diese Art sofort in die Tabelle schreibe:
insert into Schema.Tabelle (Feld1, Feld2)
values (Schema.Sequenz.nextval, 'test');
Das liegt meiner Meinung nach daran, dass Oracle ja schon dafür zuständig ist den Wert in die Tabelle zu schreiben.
Hat jemand von Euch schonmal ein ähnliches Verhalten beobachtet oder hat eine Idee woran das liegen könnte? Ich habe keine Lust alle Sequenzen umzuschreiben
Vielen Dank schonmal im Voraus
Die Werdende
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 93552
Url: https://administrator.de/forum/oracle-sequenz-zaehlt-2-hoch-wenn-sie-aus-access-2007-aufgerufen-wird-93552.html
Ausgedruckt am: 30.04.2025 um 18:04 Uhr