Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi CSV als Datenbank für Netzwerkapp (https://www.delphipraxis.net/105472-csv-als-datenbank-fuer-netzwerkapp.html)

capo 22. Dez 2007 12:42

Datenbank: keine • Version: keine • Zugriff über: keine

CSV als Datenbank für Netzwerkapp
 
Hallo,

ich habe ein Addressprogramm gemacht welches auf eine Csv-Datei als "Datenbank" zurückgreift.
Ist es möglich sowas auch für das Netzwerk zu präparieren?
Ich habe schon so naiv wie ich evtl. bin damit angefangen:
Feststellen wann Csv-Datei verändert wurde, und dann in allen anderen Programmen neu laden.
Mein größtes Problem ist der gleichzeitige Zugriff auf diese Datei-also beim speichern.

Habt ihr Ideen wie ich ohne das komplette Programm neu schreiben zu müssen machen kann?


gruss Vito

Pfoto 22. Dez 2007 12:56

Re: CSV als Datenbank für Netzwerkapp
 
Hallo capo,

das tolle an einer Datenbank ist ja, dass es nicht nur
ein Container ist, um Daten zu speichern, sondern dass
man gezielt Daten herausziehen, aktualisieren und
löschen kann.

Es kommt natürlich auch drauf an, ob das Programm nur
für Dich oder einen kleinen Personenkreis ist, bei dem
solche Hacks mit einer CSV-Datei in Ordnung sind.

Auf Dauer würde ich so etwas umschreiben. Es gibt ja
embedded-Datenbankversionen, die klein, schnell und
viel flexibler als eine CSV-Datei sind.

Ansonsten würde ich beim Handling mit der CSV-Datei
bestimmte Schreib- und Leserechte setzen, so dass
man sich nicht gegenseitig die Daten überschreibt.

Deine Frage zum letzten Schreibdatum; da habe
ich bei mir folgenden Code im Einsatz:
Delphi-Quellcode:
function GetLastWriteDateTime(const aFilename: string): TDateTime;
var
  h: THandle;
  Struct: TOFSTRUCT;
  lastwrite: Integer;
begin
  result:= 0;
  If fErrorReadingFile then exit;
  h := OpenFile(PChar(aFilename), Struct, OF_SHARE_DENY_NONE);
  try
    if h <> HFILE_ERROR then
    begin
      lastwrite := FileGetDate(h);
      Result   := FileDateToDateTime(lastwrite);
    end;
  finally
    CloseHandle(h);
  end;
end;


Gruß
Pfoto

capo 22. Dez 2007 20:36

Re: CSV als Datenbank für Netzwerkapp
 
Hallo Pfoto,
danke für deine Antwort.


Zitat:

Zitat von Pfoto

Auf Dauer würde ich so etwas umschreiben. Es gibt ja
embedded-Datenbankversionen, die klein, schnell und
viel flexibler als eine CSV-Datei sind.

welche Datenbankversionen sind das?

Zitat:

Zitat von Pfoto
Ansonsten würde ich beim Handling mit der CSV-Datei
bestimmte Schreib- und Leserechte setzen, so dass
man sich nicht gegenseitig die Daten überschreibt.

Die Addressen stehen in einem Stringgrid.
Man könnte das ja so machen, dass die Addresse die gerade in Bearbeitung ist sperren, indem ich dieser Zeile im Stringgrid ein bestimmtes Zeichen hinzufüge. Will nun jemand anderes diese Zeile bearbeiten erscheint eine Meldung. "Gesperrt etc."
Das Problem ist halt wenn jemand speichert und jemand anderes auch gerade in diesem Moment, ich denke dafür wird es keine Lösung geben.

Grüße
Vito

Jelly 22. Dez 2007 21:11

Re: CSV als Datenbank für Netzwerkapp
 
Zitat:

Zitat von capo
Das Problem ist halt wenn jemand speichert und jemand anderes auch gerade in diesem Moment, ich denke dafür wird es keine Lösung geben.

Doch, in Verbindung mit einer richtigen Datenbank schon. Da können Datensätze unter verschiedenen Mechanismen für andere gesperrt werden. Mit CSV wird das allerdings nicht zu realisieren sein.

capo 22. Dez 2007 21:43

Re: CSV als Datenbank für Netzwerkapp
 
Hallo,danke
okay...
:-D
gruss vito


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