Oracle Sequenz inkrementiert mit 2 anstatt mit 1

05/03/2013 - 22:11 von achim.jaekel | Report spam
Hallo liebe Newsgroup,

ich habe schon wieder ein Problem mit meinem lieben Access 2007. Ich benutze in Access ausschließlich verknüpfte Tabellen einer Oracle-Datenbank.

Um Datensàtze in die Oracle-Tabellen mit Hilfe eines Formulars in Access zu schreiben, benutze ich unter anderem eine auf der Oracle-DB erstelle Sequenz, aus der ich mit NEXTVAL den nàchsten Wert ermittle und als eindeutige ID in der Tabelle speichere.

Ich habe dazu eine Pass-Through Abfrage erstellt, die mir den nàchsten Wert ermittelt.

Diese Abfrage rufe ich beim Speichern eines Datensatzes auf und schreibe den Rückgabewert der Abfrage in eine Variable um dann per SQL den neuen Datensatz zu schreiben.

Seltsamerweise inkrementiert die Sequenz immer mit 2 anstatt mit 1. Das ist generell nicht weiter schlimm - Hauptsache der Wert ist weiterhin eindeutig - aber ich wundere mich, wie das geht?

Ich rufe den Rückgabewert ja nicht doppelt aus der Sequenz ab.

Hat das schon einmal jemand gehabt? Ich habe mal ein wenig gegoogelt - da war das Problem aber meistens ein Trigger, der noch auf der Oracle-DB angelegt ist.

Ich habe keinen Trigger auf der Tabelle - lediglich die Sequenz, die mir einen eindeutigen Wert liefert.

Danke & liebe Grüße,
Achim
 

Lesen sie die antworten

#1 Karl Donaubauer
06/03/2013 - 13:11 | Warnen spam
Hallo, Achim!

wrote:
...
Um Datensàtze in die Oracle-Tabellen mit Hilfe eines Formulars in
Access zu schreiben, benutze ich unter anderem eine auf der Oracle-DB
erstelle Sequenz, aus der ich mit NEXTVAL den nàchsten Wert ermittle
und als eindeutige ID in der Tabelle speichere.

Ich habe dazu eine Pass-Through Abfrage erstellt, die mir den
nàchsten Wert ermittelt.

Diese Abfrage rufe ich beim Speichern eines Datensatzes auf und
schreibe den Rückgabewert der Abfrage in eine Variable um dann per
SQL den neuen Datensatz zu schreiben.

Seltsamerweise inkrementiert die Sequenz immer mit 2 anstatt mit 1.
...



Deine Schilderung klingt irgendwie schon nach doppelt gemoppelt.
Einerseits schreibst du von einem Formular andererseits von SQL,
um den DS in die Tabelle zu schreiben. Ohne Details wie:

- Ist das Formular an die Tabelle gebunden?
- Wo, wann, wie genau wird der Wert aus der PT-Abfrage geholt?
- Wann und wie wird der DS in die Tabelle geschrieben?
d.h. VBA-Code(s) und SQL-String(s)

kann man schwer etwas dazu sagen.

Servus
Karl
*********
Access-FAQ: http://www.donkarl.com
SNEK2: SQL Server und .NET-Entwickler-Konferenz 13/14.4. Nürnberg

Ähnliche fragen