Hi...
Eine Frage an die Interbase-Spezis...
Vorab: Es handelt sich um eine sehr komplexe und dazu mir weitgehend unbekannte Datenbank. Ich habe auch kaum Erfahrungen mit Interbase im Detail. Mein Wissen habe ich mir hauptsächlich mit
mySQL erworben... Ich habe da aber folgendes Phenomän beobachtet:
Ich setze über eine SQLConnection (executedirect) einen 'Insert' Befehl ab. Nicht optimal, aber großartig umstricken kann ich das nicht mehr... Dafür ist da Projekt zu umfangreich.
Wenn ich nun den Insert absetze, kommt immer(!) folgende Fehlermeldung:
Zitat von
Messagebox:
attempt to store dublicate value (visible to active transaction) in unique index UIDX_TBB_DATEN_2_ASC
In beschriebenem Unique-Index steht folgendes:
Code:
CREATE UNIQUE ASCENDING INDEX UIDX_TBB_DATEN_2_ASC ON TBB_DATEN (MAND, FAHRER, FAHRZEUG, DATUM, BEGINZEIT, TACHOCODE, NOTIZCODE, NOTIZTEXT, DAUER, FOLGENR_MINUTE)
Das wäre ja auch okay, wenn da nicht dieser effekt wäre:
Wie schon gesagt kommt die Meldung ständig. Wenn der datensatz tatsächlich doppelt ist, kommt die Meldung (zu Recht) und der datensatz wird (wie erwartet) nicht erzeugt. Wenn ich den mandanten (MAND) auf ein X-Beliebigen Wert setze, den es nachweislich noch nicht gibt, müsste ja die Unique-Bedingung erfüllt sein. Dann wird auch der Datensatz korrekt geschrieben - die meldung kommt jedoch trotzdem - Warum???
Hoffe jemand weiss Rat...
Bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?