(Nachtrag: Datenbank: Firebird Embedded, Version: 2.1.2, Zugriff über: ZEOS 6.6.4 )
Hi,
Ich wollte deine Funktion gerne verwenden, und habe mir daher folgendes Konstrukt gestrickt:
Delphi-Quellcode:
DoQuery('CREATE TABLE MEMBERS (ID BIGINT NOT NULL, MEMBER_ID BIGINT,"TYPE" VARCHAR(255), REF BIGINT,"ROLE" VARCHAR(255));');
DoQuery('CREATE TABLE NODES (ID BIGINT NOT NULL, NODE_ID BIGINT, LAT FLOAT, LON FLOAT, TAGS VARCHAR(20000));');
DoQuery('CREATE TABLE RELATIONS (ID BIGINT NOT NULL, RELATION_ID BIGINT, MEMBERS VARCHAR(5000), TAGS VARCHAR(5000));');
DoQuery('CREATE TABLE TAGS (ID BIGINT NOT NULL, "KEY" VARCHAR(255), "VALUE" VARCHAR(255));');
DoQuery('CREATE TABLE WAYS (ID BIGINT NOT NULL, WAY_ID BIGINT, NODES VARCHAR(5000), TAGS VARCHAR(5000));');
FireBirdAutoInc(fConnection,'NODES','ID');
FireBirdAutoInc(fConnection,'TAGS','ID');
DoQuery ist einfach nur eine Funktion, die ein
Query ausführt. Wenn ich das so mache, wie geschrieben, kommt diese Fehlermeldung:
Code:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt saxxmltest.exe ist eine
Exception der Klasse EZSQLException mit der Meldung '
SQL Error: unsuccessful metadata update DEFINE TRIGGER failed attempt to store duplicate value (visible to active transactions) in unique index "RDB$INDEX_8". Error Code: -607. This operation is not defined for system tables. The
SQL: CREATE TRIGGER AUTOINC_TRG for TAGS
active before insert position 0
as
begin
new.ID = gen_id( TAGS_AUTOINC, 1 );
end
; ' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Was läuft da falsch? Liegt das an den identischen Spaltennamen? Eigentlich dürfte das doch kein Problem darstellen, oder? Wobei ich auch ehrlich zugeben muss, dass ich das mit den Generatoren und Triggern noch nicht komplett durchgeblickt habe...