Index von Auto-Index Tabelle erhalten, wie?

19/04/2010 - 08:09 von Roland Reimann | Report spam
Ein Hallo an alle,

nachdem ich einen neuen Datensatz in einer Auto-Index-Tabelle (der
Auto-Index ist also Primàrschlüssel) erzeugt habe, benötige ich den
Index von genau diesem neu angelegten Datensatz. Es muß also
sichergestellt sein, daß auch bei Multiuserbetrieb der richtige Index
zurück kommt.

Wie kann ich dies mit Delphi erreichen?

Bisher benutze ich die Komponente TADOQuery mit der ich die
SQL-Befehle zur Datenbank sende.

Zu den Details:
Es wird eine Oracle 9i Datenbank benutzt.

Die Tabelle ist folgendermaßen deklariert:

CREATE TABLE FSDB.SPULENTABELLE
("SpulenIDNummer" VARCHAR2(20) NOT NULL,
"Artikelnummer" VARCHAR2(20),
"Werkstoff" VARCHAR2(20),
"Konstruktion" VARCHAR2(50),
"Festigkeit" VARCHAR2(10),
"KustoFarbe" VARCHAR2(20),
"Gewicht" VARCHAR2(10),
"PaletteIDNummer" VARCHAR2(20),
"Kundennummer" VARCHAR2(20),
"Status" SMALLINT,
"Anlegedatum" DATE,
"Anlegeperson" VARCHAR2(50),

PRIMARY KEY("SpulenIDNummer")
)

Dazu die Sequenz und der Trigger, um den Auto-Index unter Oracle zu
implementieren:

CREATE SEQUENCE SPT_SEQUENCE
START WITH 1
INCREMENT BY 1
NOMAXVALUE

CREATE TRIGGER SPT_TRIGGER
BEFORE INSERT ON FSDB.SPULENTABELLE
FOR EACH ROW
BEGIN
SELECT SPT_SEQUENCE.NEXTVAL INTO :NEW."SpulenIDNummer" FROM DUAL;
END;


Gruß aus Aßlar
Roland
 

Lesen sie die antworten

#1 Peter Lange
19/04/2010 - 10:10 | Warnen spam
Am 19.04.2010 08:09, schrieb Roland Reimann:
Ein Hallo an alle,



Hallo,

nachdem ich einen neuen Datensatz in einer Auto-Index-Tabelle (der
Auto-Index ist also Primàrschlüssel) erzeugt habe, benötige ich den
Index von genau diesem neu angelegten Datensatz. Es muß also
sichergestellt sein, daß auch bei Multiuserbetrieb der richtige Index
zurück kommt.

Wie kann ich dies mit Delphi erreichen?



Entferne den Trigger und hole Dir erst den Schlüssel vom Generator und
schreibe dann den neuen Satz.

hth
Peter

Ähnliche fragen