Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Rätsel: Programm leert BDE-Tabelle (https://www.delphipraxis.net/24989-raetsel-programm-leert-bde-tabelle.html)

FBrust 29. Jun 2004 13:38


Rätsel: Programm leert BDE-Tabelle
 
Hallo,

in meinem Programm gibt ein paar BDE-Tabellen, deren Verwaltung auch (fast) ohne Probleme läuft. Aber es gibt eine ganz bestimmte Tabelle, die in unregelmäßigen Abständen geleert wird, ohne dass es einen expliziten Befehl dazu gibt.
Mit "Leeren" meine ich, dass die Anzahl der Datensätze gleich bleibt, aber die Felder sind plötzlich alle leer. Ich weiß genau, dass ich sowas nicht programmiert habe :gruebel:.

Hat vielleicht jemand schon mal ähnliche Erfahrungen gemacht und evtl. einen Tip, wieso das passiert und wie ich es abstellen kann?

Gruß
Frank

TypusMensch 29. Jun 2004 14:04

Re: Rätsel: Programm leert BDE-Tabelle
 
Ähm. Das geht ja irgendwie net.

Die Anzahl findest du ja mit RecordCount raus. Dies ist also größer Null aber du kannst keine Daten sehen?

Betrachtest du die Daten mit ner DBGrid? Is vielleicht die DBGrid mit ner Query verbunden, die keine oder eine sinnlose Anfrage beinhaltet, so das du nur keine Datensätze siehst? Schonmal die Tabelle mit der Datenbankoberfläche geöffnet? Sind da die Felder noch drinne oder sind sie dort auch leer?

FBrust 29. Jun 2004 14:26

Re: Rätsel: Programm leert BDE-Tabelle
 
Hallo TypusMensch,


Zitat:

Ähm. Das geht ja irgendwie net.
Das dachte ich auch, aber die Tabelle ist noch vorhanden, die Datensätze auch, aber die Felder sind leer. Die Tabelle wird im Programm direkt über ein DBGrid angezeigt - leer. In der Datenbankoberfläche das gleiche Bild: alle Datensätze vorhanden, aber keine Feldinhalte mehr.

Hmm, wird wohl Zeit, die BDE gegen was aktuelleres auszutauschen....:gruebel:

Gruß
Frank :gruebel:

MrSpock 29. Jun 2004 15:01

Re: Rätsel: Programm leert BDE-Tabelle
 
Hallo Frank,

ich habe immer noch einige Progamme laufen, die schon seit Jahren über die BDE laufen. Aber den Effekt habe ich weder erlebt noch von jemandem gehört, der diesen Effekt kennt. Das sieht nicht nach einem bekannten BDE Problem aus. Kannst du ganz sicher ausschließen, dass der Fehler über ein Programmfehler zustande kommt? Gibt es irgendwo im Programm eine Schleife, die die Felder der Tabelle schreibend verändert? Am besten schaust du dir noch einmal alle Programmteile an, die schreibend auf die Tabelle zugreifen. Es ist denn immer dieselbe Tabelle, die von dem Effekt betroffen ist?

FBrust 29. Jun 2004 15:58

Re: Rätsel: Programm leert BDE-Tabelle
 
Hallo MrSpock,

es ist tatsächlich nur diese Tabelle und es gibt keine Schleife, die schreibend auf diese Tabelle zugreift. Ich verstehs ja auch nicht.
Aber ich denke, ich werde mal die Tabelle durch eine ADS-Tabelle ersetzen und dann sehen was passiert. Wenn die Tabelle dann immer noch geleert wird, liegts irgendwo im Programm.


Gruß

Frank

MrSpock 29. Jun 2004 16:36

Re: Rätsel: Programm leert BDE-Tabelle
 
Hallo Frank,

gibt es irgendetwas "Besonderes" an der Tabelle? Benutzt du Blob Felder? Wie und wann werden Einträge in diese Tabelle gemacht?

FBrust 29. Jun 2004 20:56

Re: Rätsel: Programm leert BDE-Tabelle
 
Hallo Mr. Spock,

die Tabelle hat genau zwei Felder: ein Integer- und ein String-Feld, sonst nix. Einträge in die Tabelle werden in einem DBGrid durch den Anwender gemacht und über einen DBNavigator gespeichert (was auch funktioniert, die Eingaben landen auch in der Tabelle), also "business as usual".

Ich hab auch schon ein Showmessage in die BeforeDelete- und AfterDelete-Ereignisse gesetzt, nur um mal zu sehen, ob da was passiert - ohne Erfolg. Ich meine, wenn über das Programm da was gelöscht wird, hätten der Anwender oder ich die Messageboxen sehen müssen.


Gruß
Frank

MrSpock 30. Jun 2004 05:51

Re: Rätsel: Programm leert BDE-Tabelle
 
Hallo Frank,

wenn nur der Feldinhalt gelöscht wird, wird ja das OnDelete Ereignis nicht erzeugt. Das käme ja nur, wenn ein kompletter Datensatz gelöscht werden würde. Es tritt also nur OnChange auf. Komisch :gruebel: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz