Schreibkonflikt in Tabelle

25/11/2009 - 14:25 von Stefan Wirrer | Report spam
Hallo,

FE: A2003 (alle SP), BE: PostgreSQL

ich habe in manchen Tabellen mit manchen Felder bei manchen
Datensàtzen einen Schreibkonflikt.
Fehlermeldung:
Dieser Datensatz wurde seit beginn der Bearbeitung von einen
anderen Benutzer geàndert. Wenn Sie den DS speichern, werden
die Änderungen des anderen Benutzers überschrieben.
Kopieren Ihrer Änderungen in die Zwischenablage ermöglicht es Ihnen ...
-> DS speichern /* ist ausgegraut */
-> In Zwischenablage kopieren -> Eigene Änderungen verwerfen

Beispiel:
tbl_Kunden, Feld: kdgeloescht [Integer]
auf PG-Seite: ... ADD COLUMN kdgeloescht smallint;
index_kunde serial NOT NULL,
CONSTRAINT tbl_kunde_pkey PRIMARY KEY (index_kunde)

bei manchen Kunden kann ich weder über das Endlosformular
noch direkt in der Tabelle den Inhalt àndern.

Per Aktualisierungsabfrage geht's aber:
UPDATE tbl_kunde SET kdgeloescht = 1
WHERE index_kunde = 123;

Es geht auch direkt auf der DB-Seite (pgAdmin).

der Connectstring:
ODBC;UID=meineDB;PWD=meinPW;SERVER=dbserver;
PORTT32;DATABASE=meineDatabase;
Driver={PostgreSQL Unicode};

Ein neues Verknüpfen der Tabellen àndert nichts.
Wie gesagt, es betrifft nur ganz wenig Datensàtze.

Aber warum?
Hat jmd. eine Idee?

Sonnige Grüße aus München
Stefan
 

Lesen sie die antworten

#1 Siegfried Schmidt
25/11/2009 - 16:08 | Warnen spam
Stefan Wirrer schrieb:

ich habe in manchen Tabellen mit manchen Felder bei manchen
Datensàtzen einen Schreibkonflikt.



Meist ein Konflikt in der Datendarstellung FE/BE, z.B. Lànge des Inhalts
bei Text, Wertebereich oder Auflösung numerisch oder zeitlich.

tbl_Kunden, Feld: kdgeloescht [Integer]
auf PG-Seite: ... ADD COLUMN kdgeloescht smallint;
index_kunde serial NOT NULL,
CONSTRAINT tbl_kunde_pkey PRIMARY KEY (index_kunde)



Da gibts doch sicher noch weitere Felder?

bei manchen Kunden kann ich weder über das Endlosformular
noch direkt in der Tabelle den Inhalt àndern.
Per Aktualisierungsabfrage geht's aber:
UPDATE tbl_kunde SET kdgeloescht = 1
WHERE index_kunde = 123;



Ist normal, da bei letzterem das problematische Feld nicht angesprochen
wird.

Hat jmd. eine Idee?



Siehst du eine Spalte "xmin"? Wenn nein schalte das Row Versioning im
ODBC-Treiber ein.

Alternativ durch serverseitiges Leeren von Feldern in einem den
problematischen Datensàtze den ursàchlichen Dateninhalt suchen und
abklàren, warum es dazu kommen konnte und Abhilfe schaffen.


Siegfried

Ähnliche fragen