PostgreSQL Fallback auf alte Tabelle

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.

PostgreSQL Fallback auf alte Tabelle

Beitragvon Michl » 13. Mär 2019, 11:42 PostgreSQL Fallback auf alte Tabelle

Servus,

ich bin am entwerfen eines Programms und nutze dafür zur Zeit eine lokale PostgreSQL Datenbank (PostgreSQL 10) mit SQLDB (64bit Lazarus Trunk, FPC 3.0.4). Dabei wird eine Tabelle mit Standardeinträgen befüllt. Da ich einen Standardeintrag vergessen hatte, habe ich die Befüllung der Standardeinträge um diesen Wert erweitert. Lösche ich die komplette Datenbank und starte ich das Programm, wird die Tabelle automatisch befüllt und alle Einträge sind da.

Wenn ich das Programm dann wieder neu starte, sind alle Einträge da, außer der neu hinzugefügte.
Öffne ich PgAdmin, sehe ich alle Einträge, auch den neu hinzugefügten - im Programm allerdings nicht.

Um das Problem einzugrenzen, habe ich ein Testprogramm geschrieben, die Datenbank gelöscht und nur die eine Tabelle mit dem Namen erstellt und befüllt. Diese zeigt das gleiche Problem. Beim ersten Start sind alle Einträge i.O. Beim zweiten Start fehlt der Eintrag.

Als nächstes habe ich die Datenbank wieder gelöscht, eine andere Datenbank mit einem anderen Namen erstellt, dort die Tabelle mit gleichen Namen erstellt und befüllt. Diese zeigte wieder zuerst alle Daten an und beim nächsten Programmstart fehlte der zusätzliche Eintrag. Also ich sehe bei dieser Datenbank die fehlerhafte Tabelle einer anderen Datenbank.

Als nächstes habe ich die Datenbank wieder gelöscht und eine neue Datenbank erstellt, dort die Tabelle unter einem anderen Namen erstellt und befüllt. Dieses funktionierte nun richtig.

Wenn ich das Testprogramm auf Zeos umstelle, werden die Daten korrekt angezeigt, auch mit dem entsprechendem Tabellennamen. Starte ich das Programm mit SQLDB, wird die fehlerhafte Tabelle angezeigt, obwohl die Datenbank und die Tabelle mit Zeos erstellt wurden.

Ich vermute, daß irgendwo die Tabelle temporär (gecacht) gespeichert ist und bei einem Neustart darauf zugegriffen wird. PgAdmin und Zeos zeigen die Daten korrekt an, SQLDB nicht.

Ein Minimalbeispiel kann ich leider nicht erstellen, da es nur bei der speziellen Tabelle mit nur dem Namen auftritt.

Hat jemand schon mal so ein ähnliches Problem gehabt oder eine Idee wo ich suchen könnte?

[EDIT]
Auch ein VACUUM bringt keinen Erfolg (https://www.postgresql.org/docs/9.1/sql-vacuum.html).
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2320
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

• Themenende •

Zurück zu Datenbanken



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried