Hallo zusammen,
bitte entschuldigt, wenn ich keine eindeutige Frage stellen kann, ich bin blutiger Anfänger.
In einer Firebird 2.5 Datenbank wird sporadisch ein Eintrag gelöscht, der zuvor per SQL Befehl eingefügt wurde.
Manchmal bleibt der Eintrag 2 Stunden in der Tabelle, manchmal nur 2 Minuten.
Der Datentyp ist "BLOB SUB_TYPE TEXT", Zeichensatz WIN_1252.
Gibt es ein Tool o.ä., mit dem ich nachvollziehen kann, was genau den Eintrag aus der Datenbank löscht?
Firebird 2.5 Datenbank Einträge löschen sich sporadisch
Moderator: thorben.braun
Hallo,
bist Du Anfänger mit Firebird oder Anfänger mit Datenbanken? Davon hängen die Antworten etwas ab.
BLOB SUB_TYPE TEXT ist ein Feld-Datentyp für Textdaten beliebiger Länge, die die Datenbank nicht weiter interpretiert. Wird denn nur der Feldinhalt geleert oder der ganze Satz gelöscht, in dem dieses Blobfeld vorkommt? Und wie wird der SQL-Befehl abgesetzt, durch eine Anwendung oder innerhalb der Datenbank durch deren Mechanismen, zb durch eine Stored Procedure oder Trigger?
bist Du Anfänger mit Firebird oder Anfänger mit Datenbanken? Davon hängen die Antworten etwas ab.
BLOB SUB_TYPE TEXT ist ein Feld-Datentyp für Textdaten beliebiger Länge, die die Datenbank nicht weiter interpretiert. Wird denn nur der Feldinhalt geleert oder der ganze Satz gelöscht, in dem dieses Blobfeld vorkommt? Und wie wird der SQL-Befehl abgesetzt, durch eine Anwendung oder innerhalb der Datenbank durch deren Mechanismen, zb durch eine Stored Procedure oder Trigger?
- martin.koeditz
- Beiträge: 478
- Registriert: Sa 31. Mär 2018, 14:35
Guten Morgen,
eventuell gibt es auch nicht abgeschlossene Transaktionen. Innerhalb dieser kann ich mehrere Anweisungen (z.B. löschen eines Datensatzes) durchführen. Die Änderungen werden jedoch erst nach einem erfolgreichen Commit für andere Benutzer (Sessions) sichtbar.
Aber wie Volker schon anmerkte, benötigen wir ein paar weitere Infos.
Was wann in der Datenbank passiert, lässt sich gut mit der Trace-API oder Drittanbieter-Programmen wie Firebird-Monitor von GKSoft ermitteln.
Gruß
Martin
eventuell gibt es auch nicht abgeschlossene Transaktionen. Innerhalb dieser kann ich mehrere Anweisungen (z.B. löschen eines Datensatzes) durchführen. Die Änderungen werden jedoch erst nach einem erfolgreichen Commit für andere Benutzer (Sessions) sichtbar.
Aber wie Volker schon anmerkte, benötigen wir ein paar weitere Infos.
Was wann in der Datenbank passiert, lässt sich gut mit der Trace-API oder Drittanbieter-Programmen wie Firebird-Monitor von GKSoft ermitteln.
Gruß
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
Es sind mit Sicherheit nicht abgeschlossene Transaktionen.
Die Daten bleiben aber nur für die eine Sitzung sichtbar und können von niemand anderen gesehen oder verwendet werden so lange die Transaktion nicht abgeschlossen wird.
Machst du dann einen Close der Connection, führt der DB-Server automatisch eine Rollback durch und die Daten verschwinden wieder.
Welche Programmiersprache und welchen Treiber nutzt du?
Weißt du, wie und wann du eine Transaktion startest und Commit bzw. Rollback durchführst?
Die Daten bleiben aber nur für die eine Sitzung sichtbar und können von niemand anderen gesehen oder verwendet werden so lange die Transaktion nicht abgeschlossen wird.
Machst du dann einen Close der Connection, führt der DB-Server automatisch eine Rollback durch und die Daten verschwinden wieder.
Welche Programmiersprache und welchen Treiber nutzt du?
Weißt du, wie und wann du eine Transaktion startest und Commit bzw. Rollback durchführst?
-
- Beiträge: 9
- Registriert: Fr 26. Aug 2022, 13:33
Der Feldinhalt wird gelöscht. Der SQL-Befehl wird durch eine Anwendung abgesetztvr2 hat geschrieben: ↑Mi 19. Apr 2023, 02:47 Hallo,
bist Du Anfänger mit Firebird oder Anfänger mit Datenbanken? Davon hängen die Antworten etwas ab.
BLOB SUB_TYPE TEXT ist ein Feld-Datentyp für Textdaten beliebiger Länge, die die Datenbank nicht weiter interpretiert. Wird denn nur der Feldinhalt geleert oder der ganze Satz gelöscht, in dem dieses Blobfeld vorkommt? Und wie wird der SQL-Befehl abgesetzt, durch eine Anwendung oder innerhalb der Datenbank durch deren Mechanismen, zb durch eine Stored Procedure oder Trigger?
-
- Beiträge: 9
- Registriert: Fr 26. Aug 2022, 13:33
Mit einer JDBC API innerhalb von JAVAbfuerchau hat geschrieben: ↑Mi 19. Apr 2023, 09:22 Es sind mit Sicherheit nicht abgeschlossene Transaktionen.
Die Daten bleiben aber nur für die eine Sitzung sichtbar und können von niemand anderen gesehen oder verwendet werden so lange die Transaktion nicht abgeschlossen wird.
Machst du dann einen Close der Connection, führt der DB-Server automatisch eine Rollback durch und die Daten verschwinden wieder.
Welche Programmiersprache und welchen Treiber nutzt du?
Weißt du, wie und wann du eine Transaktion startest und Commit bzw. Rollback durchführst?
Dann schau dir dieses Thema mal an und prüfe, was du ggf. nicht richtig machst:
https://docs.oracle.com/javase/tutorial ... tions.html
https://docs.oracle.com/javase/tutorial ... tions.html