Interbase 6.5.0.28 Netzwerk, Delphi5, IBX 5.03, Datenbankreplikation
Beim Update eines Datensatzes über Stored Procedure in einer Datenbank mit Daten aus einer anderen Datenbank tritt der Fehler "Invalid Blob ID" auf, aber nur bei einem bestimmten Proband/Firma. Die Daten werden immer im Block je Firma bearbeitet. Probanden in anderen Firmen lassen sich problemlos aktualisieren. Eine Änderung am Notiz (Blobfeld) ist nicht vorgenommen worden und die Wertezuweisungen zu den Feldern stimmt (der fehlerhafte Datensatz wird protokolliert). Eine Suche über gfix brachte keine Datenbankbeschädigung und damit weiß ich nun nicht weiter woran es liegen könnte, da der Datenbankabgleich schon seit ein paar Jahren eingesetzt wird. Einzige Besonderheit: Der Proband wurde nach über 3 Monaten zum ersten mal wieder an die Hauptdatenbank zurücküberspielt.
Gruß Andreas
create PROCEDURE UPDATE_PROBAND
(
PROBANDID INTEGER,
FIRMAID INTEGER,
NAME VARCHAR(30),
VORNAME VARCHAR(30),
GEBURTSNAME VARCHAR(30),
STRASSE VARCHAR(50),
PLZ VARCHAR(7),
ORT VARCHAR(50),
KK_ID INTEGER,
HA_ID INTEGER,
GESCHLECHT VARCHAR(1),
GEBDATUM TIMESTAMP,
BERUF1_ID INTEGER,
BERUF2_ID INTEGER,
RECORDSTATUS INTEGER,
LETZTEVERAENDERUNGUSER VARCHAR(8),
LETZTEVERAENDERUNGZEIT TIMESTAMP,
RISIKO1_ID INTEGER,
RISIKO2_ID INTEGER,
RISIKO3_ID INTEGER,
RISIKO4_ID INTEGER,
TITEL VARCHAR(15),
STAATSANGEHOERIGKEIT VARCHAR(30),
VERSICHERTENNUMMER VARCHAR(12),
EINSTELLDATUM TIMESTAMP,
PERSNR INTEGER,
KENNZEICHEN INTEGER,
NOTIZ BLOB SUB_TYPE 0 SEGMENT SIZE 80,
TELEFON VARCHAR(20),
FAX VARCHAR(20),
E_MAIL VARCHAR(40)
)
AS
begin
update Proband set FIRMAID = :FIRMAID, NAME = :NAME,
VORNAME = :VORNAME, GEBURTSNAME = :GEBURTSNAME,
STRASSE = :STRASSE, PLZ = :PLZ, ORT = :ORT, KK_ID = :KK_ID,
HA_ID = :HA_ID, GESCHLECHT = :GESCHLECHT, GEBDATUM = :GEBDATUM,
BERUF1_ID = :BERUF1_ID, BERUF2_ID = :BERUF2_ID,
RECORDSTATUS = :RECORDSTATUS,
LETZTEVERAENDERUNGUSER = :LETZTEVERAENDERUNGUSER,
LETZTEVERAENDERUNGZEIT = :LETZTEVERAENDERUNGZEIT,
RISIKO1_ID = :RISIKO1_ID, RISIKO2_ID = :RISIKO2_ID,
RISIKO3_ID = :RISIKO3_ID, RISIKO4_ID = :RISIKO4_ID,
TITEL = :TITEL, STAATSANGEHOERIGKEIT = :STAATSANGEHOERIGKEIT,
VERSICHERTENNUMMER = :VERSICHERTENNUMMER, EINSTELLDATUM = :EINSTELLDATUM,
PERSNR = :PERSNR, KENNZEICHEN = :KENNZEICHEN, NOTIZ = :NOTIZ,
TELEFON = :TELEFON, FAX = :FAX, E_MAIL = :E_MAIL
where PROBANDID = :PROBANDID ;
end
^
Beim Update eines Datensatzes über Stored Procedure in einer Datenbank mit Daten aus einer anderen Datenbank tritt der Fehler "Invalid Blob ID" auf, aber nur bei einem bestimmten Proband/Firma. Die Daten werden immer im Block je Firma bearbeitet. Probanden in anderen Firmen lassen sich problemlos aktualisieren. Eine Änderung am Notiz (Blobfeld) ist nicht vorgenommen worden und die Wertezuweisungen zu den Feldern stimmt (der fehlerhafte Datensatz wird protokolliert). Eine Suche über gfix brachte keine Datenbankbeschädigung und damit weiß ich nun nicht weiter woran es liegen könnte, da der Datenbankabgleich schon seit ein paar Jahren eingesetzt wird. Einzige Besonderheit: Der Proband wurde nach über 3 Monaten zum ersten mal wieder an die Hauptdatenbank zurücküberspielt.
Gruß Andreas
create PROCEDURE UPDATE_PROBAND
(
PROBANDID INTEGER,
FIRMAID INTEGER,
NAME VARCHAR(30),
VORNAME VARCHAR(30),
GEBURTSNAME VARCHAR(30),
STRASSE VARCHAR(50),
PLZ VARCHAR(7),
ORT VARCHAR(50),
KK_ID INTEGER,
HA_ID INTEGER,
GESCHLECHT VARCHAR(1),
GEBDATUM TIMESTAMP,
BERUF1_ID INTEGER,
BERUF2_ID INTEGER,
RECORDSTATUS INTEGER,
LETZTEVERAENDERUNGUSER VARCHAR(8),
LETZTEVERAENDERUNGZEIT TIMESTAMP,
RISIKO1_ID INTEGER,
RISIKO2_ID INTEGER,
RISIKO3_ID INTEGER,
RISIKO4_ID INTEGER,
TITEL VARCHAR(15),
STAATSANGEHOERIGKEIT VARCHAR(30),
VERSICHERTENNUMMER VARCHAR(12),
EINSTELLDATUM TIMESTAMP,
PERSNR INTEGER,
KENNZEICHEN INTEGER,
NOTIZ BLOB SUB_TYPE 0 SEGMENT SIZE 80,
TELEFON VARCHAR(20),
FAX VARCHAR(20),
E_MAIL VARCHAR(40)
)
AS
begin
update Proband set FIRMAID = :FIRMAID, NAME = :NAME,
VORNAME = :VORNAME, GEBURTSNAME = :GEBURTSNAME,
STRASSE = :STRASSE, PLZ = :PLZ, ORT = :ORT, KK_ID = :KK_ID,
HA_ID = :HA_ID, GESCHLECHT = :GESCHLECHT, GEBDATUM = :GEBDATUM,
BERUF1_ID = :BERUF1_ID, BERUF2_ID = :BERUF2_ID,
RECORDSTATUS = :RECORDSTATUS,
LETZTEVERAENDERUNGUSER = :LETZTEVERAENDERUNGUSER,
LETZTEVERAENDERUNGZEIT = :LETZTEVERAENDERUNGZEIT,
RISIKO1_ID = :RISIKO1_ID, RISIKO2_ID = :RISIKO2_ID,
RISIKO3_ID = :RISIKO3_ID, RISIKO4_ID = :RISIKO4_ID,
TITEL = :TITEL, STAATSANGEHOERIGKEIT = :STAATSANGEHOERIGKEIT,
VERSICHERTENNUMMER = :VERSICHERTENNUMMER, EINSTELLDATUM = :EINSTELLDATUM,
PERSNR = :PERSNR, KENNZEICHEN = :KENNZEICHEN, NOTIZ = :NOTIZ,
TELEFON = :TELEFON, FAX = :FAX, E_MAIL = :E_MAIL
where PROBANDID = :PROBANDID ;
end
^
Comment