AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi IB - Insert Problem mit UNIQUE
Thema durchsuchen
Ansicht
Themen-Optionen

IB - Insert Problem mit UNIQUE

Ein Thema von Tonic1024 · begonnen am 16. Jan 2004 · letzter Beitrag vom 9. Feb 2004
Antwort Antwort
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#1

IB - Insert Problem mit UNIQUE

  Alt 16. Jan 2004, 09:16
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?
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#2

Re: IB - Insert Problem mit UNIQUE

  Alt 19. Jan 2004, 07:18
Hi...

Das Thema ist noch aktuell... wenn jemand ne Ahnung hat wäre ich Dankbar...

Bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#3

Re: IB - Insert Problem mit UNIQUE

  Alt 23. Jan 2004, 11:30
Das Pusher-Thema ist ja noch aktuell, trotzdem werd ich mal diesen Thread recyclen um für mein Problem eine andere Lösung zu finden...

Da ja der Fehler immer Auftritt, und ich die SQL-Anweisung mechanisch erstelle, möchte ich speziel diese Fehlermeldung unterdrücken. Es ist eher unwahrscheinlich, dass sie während des laufenden Betriebes Auftritt solange die Prüfbedingungen vorher schon hart genug sind.

Wenn ich nun aber die ExecuteDirect Anweisung in einen Try-Except-Block packe, hat das aber keine Wirkung... Die Schleife, in der dieser Fehler Auftritt wird genau an dieser Stelle angehalten und die Meldung wird gefeuert.

Gibt es einen Compilerschalter oder sowas mit dem ich das unterdrücken kann?

jeder kennt ja bestimmt {$i-} und IOResult für die E/A Fehler... Sowas würde mir an dieser Stelle gefallen. Dann könnte ich individuell auf den aufgetretenden Fehler reagieren...

Bis denne...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: IB - Insert Problem mit UNIQUE

  Alt 23. Jan 2004, 11:58
Die Fehlermeldung klingt so, also
würde das Insert 2x gefeuert werden.

So richtig weiterhelfen kann ich dir nicht,
aber geh mal auf www.entwickler-forum.de.
Da sind die absoluten Spezies für IB/Firebird
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#5

Re: IB - Insert Problem mit UNIQUE [gelöst?]

  Alt 9. Feb 2004, 13:18
Hallo nochmal...

Für die, die ein ähnliches Problem haben - oder haben werden. Ich habe das Problem lokalisiert und gelöst - vielmehr umgangen.

Kleine Geschichte zu Hergang:

Ich habe für den Zugriff DBExpress-Kompos benutzt. Da ich ein SQL-Statement absetzen wollte, schien mir die Kompo 'SQLConnection' mit der Methode 'ExecuteDirect', zumal ich auch noch Referenzdaten aus einer mySQL Datenbank auslese, für sehr geeignet. Das Auslesen (mySQL und IB) macht auch keine Probleme. Arbeitet in Verbindung mit der 'SQLQuery' einwandfrei und sehr komfortabel. Nur beim Schreiben tritt oben beschriebener Fehler auf. (Seltsam-Seltsam)

Ich habe speziell zum Schreiben jetzt Delphis Interbase-Kompos verwendet - ist ja auch naheliegend... Und der Fehler tritt nun nicht mehr auf - warum auch immer.

Falls Jemand dafür eine Erklährung weiss, würd ich mich freuen. Aber ich bin erstmal zufrieden...
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz