Autor Beitrag
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Di 31.05.16 10:58 
Hallo,

ich schreibe momentan eine Prozedur für eine Firebird-Datenbank. Dabei hole ich Werte aus 1 Tabelle, schreib einen Teil davon in eine 2. Tabelle und den anderen Teil als Eingangsparameter in eine andere Prozedur. Dabei bekomme ich folgende Fehlermeldung:
Zitat:
attempt to store duplicate value (visible to active transactions) in unique index "MirNichtBekannteVariable"
Problematic key value is ("ArtikelNr" = ...)

Was für eine Art von Problem ist das? Hat ArtikelNr vielleicht das falsche Format? (kenne das von "MirNichtBekannteVariable" nicht)
Wie gehe ich da am besten ran?

Gruß Julian

PS: wenn ihr Quelltext braucht, könnt ihr kriegen!
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Di 31.05.16 11:12 
Es liest sich für mich so, als wolltest du eine "ArtikelNr" doppelt vergeben. Das ist nicht erlaubt, da das Feld dein Schlüssel ist und der muss eindeutig sein.

Sprich dein Query hat eine Artikel Nummer ergeben, die es in Tabelle 2 Schon gibt und du versuchst sie per INSERT erneut hinzuzufügen, in dem Fall muss du aber entweder den Datensatz auslassen, da es ihn schon gibt oder per UPDATE eine Änderung des bereits bestehenden Datensatzes durchführen. Auch ein Löschen des alten Eintrages vor dem INSERT wäre denkbar.

Für diesen Beitrag haben gedankt: erfahrener Neuling
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 31.05.16 11:24 
Das "MirNichtBekannteVariable" ist der Name des Uniquer-Indexes, der verletzt wird. Ich würde mir diesen Index mal in der Datenbank anschauen.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)

Für diesen Beitrag haben gedankt: erfahrener Neuling
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Di 31.05.16 11:30 
@doublecross
Ich hab deinen Rat mal befolgt, und die betroffenen Felder in Tabelle 2 auf null gesetzt und dann ging es (Ist ja auch logisch, das es nicht mehrere gleiche ArtikelNr geben soll).
doublecross
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 149
Erhaltene Danke: 27

Windows 7
C#; Visual Studio 2015
BeitragVerfasst: Di 31.05.16 11:35 
Hi,
user profile iconerfahrener Neuling hat folgendes geschrieben Zum zitierten Posting springen:
@doublecross
Ich hab deinen Rat mal befolgt, und die betroffenen Felder in Tabelle 2 auf null gesetzt und dann ging es (Ist ja auch logisch, das es nicht mehrere gleiche ArtikelNr geben soll).

verstehe ich nicht ganz, was hast du auf null gestellt? Oder schreibst du die Artikelnummer nur einfach nicht neu weg? Wie Identifizierst du dann den betroffenen Datansatz?
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Di 31.05.16 12:06 
Nein, eigentlich will ich komplett neue Sätze in Tabelle 2 erstellen, hatte aber noch alte Test-Daten mit den Artikelnummern. Und die hab ich gelöscht