Hallo
DP,
Ich stehe vor einem riesen Problem.
Ich habe für eine kleine Firma ein Tool geschrieben (in D7), welchen Daten aus einer dBase-Clipper Datenbank auswerten kann.
Dafür für benutze ich den ADS LocalServer 7.x.
Die eigentliche Haupt-Anwendung der dBase-DBF ist ein DOS-Programm (mehr als 10 Jahre alt).
Das ganze läuft auf einem WinXP/SP2 Rechner. Mein Prog als Windows-Anwendung und das DOS-Prog in/auf der Console.
Das "angebliche" Problem, welches heute seit ca. 2 Jahren das dritte mal aufgetreten ist (mein Prog ist täglich im Einsatz):
Sobald mein Prog geschlossen wird, werden willkürlich Daten in der Datenbank überschrieben.
"Natürlich" ist mein Programm schuld.
Nun das eigenartige: Es werden nur einzelne Felder in den DBF-Dateien mit 0.0 überschrieben, in Tabellen die mein Programm überhaupt nicht angreift, aber im Augenblick des Beendens, in der DOS-Hauptanwendung geöffnet sind.
Ich schicke keine Nachrichten an das DOS-Prog.
Beim Beenden meines Prog wird lediglich eine
DLL entladen, die ADSConnection getrennt, 2 eigene Klassen (ohne ADS) freigeben und das
Mutex-
Handle geschlossen.
Könnt ihr euch eine Konstellation vorstellen, wie so etwas passieren kann?
Kann es sein, dass mein Prog irgendwie den Speicher des DOS-Progs überschreibt?
Laufen DOS-Progs nicht sowieso in einem eigenen geschützten Speicherbereich?
Wie stehen die Chancen, dass tatsächlich mein Programm diesen Mist baut?
Könnte es sein, das ADS irgendwo einen Bug hat? Wisst ihr was? ... oder evtl. WinXP bezüglich dBase??
Reproduzieren lässt sich der Fehler natürlich nicht. (wäre ja zu schön)
Bittend um Hilfe und verzweifelte Grüße
gmc