Hallo, beim experimentieren ist mir ein interessantes Verhalten des ODBC-Treibers aufgefallen. Postgres 8.3.7 ODBC 8.03.04.00 Erstelle ich eine Tabelle (PGAdmin) mit timestamp without timezone und lege als Standardwert now() fest, dann gibt es unter MS ACCESS 2003 einen merkwürdigen Effekt. Ich kann ohne Probleme einen Datensatz anlegen. Wenn ich aber versuche, diesen zu ändern, bekomme ich die Meldung >>Schreibkonflikt
Tja, “Schreibkonflikt” kann sicherlich nicht die ganze Fehlermeldung sein.
Also: was ist die genaue Fehlermeldung? Was steht im Logfile der Datenbank?
Und ganz wichtig: welche Befehle genau (SQL) werden ausgeführt?
Es wird ein ganz normales UPDATE auf die Tabelle gemacht. Ich benutze ACCESS als Frontend. Der Fehler tritt nur auf, wenn das Feld date_update mit dem Standardwert now() vorbelegt ist
CREATE TABLE “tbl_WERK”
(
werk_id serial NOT NULL,
“name” character varying(255) NOT NULL,
name_2 character varying(255),
name_3 character varying(255),
werktyp integer,
datentraeger integer,
uebergeordnet integer,
datum_beschaffung date,
user_update character varying(20) DEFAULT “session_user”(),
preis_beschaffung numeric(8,5),
date_update timestamp without time zone
)
WITH (OIDS=FALSE);
Ich habe das bereits rausgenommen und habe jetzt damit kein Problem mehr. Die Fehlerausschrift habe ich als Datei angehängt. Wie gesagt, passiert der Fehler nur bei Nutzung von odbc und access.
j.e.
Also NOW() als Standardwert wird sowieso nur genutzt, wenn kein Wert für die betreffende Spalte bei einem INSERT angegeben ist. Bei einem UPDATE hat diese Angabe keine Auswirkung.
Aber: in deiner angehängten Datei befinden sich jede Menge Fehler - nur leider nicht derjenige, der mit dem UPDATE zusammenhängt.
Vielleicht solltest du die ganzen Fehler erst mal beseitigen und dann schauen, was genau für ein UPDATE generiert wird. Außerdem rate ich dir, das ganze direkt auf der psql Konsole auszuprobieren und erst wenn alles funktioniert, Access und ODBC dazwischen zuschalten. Bisher weisst du nämlich nicht, ob dein Problem am NOW() oder an Access oder an ODBC liegt … du kannst nur rätseln.
Vielen Dank für die schnelle Antwort.
Ein paar Punkte habe ich schon ausprobiert. Mit psql und pgadmin (per Edit Data) habe ich den Effekt nicht. Auch mit oO und dem ODBC-Treiber gibt es keine Probleme. Nur Access hat sich da etwas bockig.
Ich werde die Vorbelegung einfach weglassen und damit das Problem umgehen.
Nochmal vielen Dank
j.e.