Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Änderung in DBASE festellen und Tabelle neu laden (https://www.delphipraxis.net/81692-aenderung-dbase-festellen-und-tabelle-neu-laden.html)

thomasdrewermann 1. Dez 2006 19:02


Änderung in DBASE festellen und Tabelle neu laden
 
Hallo,

ich stehe aktuell vor dem Problem, dass ich ein Programm erstellen muss, welches die Eingabeinformationen aus einer DBase-Datenbank (filebasiert) beziehen muss. Dabei muss es immer wieder "schauen" ob es einen neuen Eintrag in einer bestimmten Tabelle gibt. Mein erster Versuch war auf der Basis eines Timer. Dieser setzt die TTable-Komponente Eigenschaft active auf false und dann wieder auf true. Das bewirkt dann ein neu laden. Aber diese Methode arbeitet nicht zurverlässig. Mein Programm hat kein sichtbares Fenster und arbeitet im Hintergrund. Wenn der neue Eintrag erkannt wird soll ein Fenster aufgehen.

Habt ihr eine Idee? Gibt es vielleicht soger ein komfortabeles Ereignis?

Gruß
Thomas

mkinzler 1. Dez 2006 19:29

Re: Änderung in DBASE festellen und Tabelle neu laden
 
Du könntest das Verzeichnis auf Schreibvorgänge überwachen.

thomasdrewermann 2. Dez 2006 20:32

Re: Änderung in DBASE festellen und Tabelle neu laden
 
Funktioniert diese Methode auch bei Windows 98 mit FAT-Dateisystem?

Gruß
Thomas

mkinzler 3. Dez 2006 16:45

Re: Änderung in DBASE festellen und Tabelle neu laden
 
Zitat:

Zitat von thomasdrewermann
Funktioniert diese Methode auch bei Windows 98 mit FAT-Dateisystem?

Gruß
Thomas

k.A versuchs doch einfach mal aus.

marabu 3. Dez 2006 17:27

Re: Änderung in DBASE festellen und Tabelle neu laden
 
Hi,

manchmal genügt ein Blick in die Online Reference um sich Klarheit zu verschaffen.

Freundliche Grüße

Reinhard Kern 4. Dez 2006 11:02

Re: Änderung in DBASE festellen und Tabelle neu laden
 
Zitat:

Zitat von thomasdrewermann
Hallo,

ich stehe aktuell vor dem Problem, dass ich ein Programm erstellen muss, welches die Eingabeinformationen aus einer DBase-Datenbank (filebasiert) beziehen muss. Dabei muss es immer wieder "schauen" ob es einen neuen Eintrag in einer bestimmten Tabelle gibt. Mein erster Versuch war auf der Basis eines Timer. Dieser setzt die TTable-Komponente Eigenschaft active auf false und dann wieder auf true. Das bewirkt dann ein neu laden. Aber diese Methode arbeitet nicht zurverlässig. Mein Programm hat kein sichtbares Fenster und arbeitet im Hintergrund. Wenn der neue Eintrag erkannt wird soll ein Fenster aufgehen.

Habt ihr eine Idee? Gibt es vielleicht soger ein komfortabeles Ereignis?

Gruß
Thomas

Hallo,

wenn du schreibst "filebasiert", soll das wohl heissen, dass es keinen Datenbankserver gibt. Aber Record Locking gibt es unter DBase auch ohne, steht dir das zur Verfügung?

Grundsätzlich: wenn du Delphi-Komponenten benutzt, bist du natürlich weit weg von den Details der Datenbank. Ich habe bisher eine direkte Zugriffsbibliothek (CodeBase) benutzt, damit liesse sich so etwas eher lösen, z.B. in einer Timerroutine den Record neu lesen und Hash bilden, wenn nicht mehr der gleiche -> Benachrichtigung, dass jemand anders den Record geändert hat.

Wenn es nur darum geht, ob ein Eintrag dazugekommen ist: die Zahl der Einträge steht im Header der DBF-Datei!

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 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