![]() |
Datenbank: ADS • Version: 9 • Zugriff über: TDataSet
Effiziente Synchronisation Datenbank CSV-Datei
Hallo,
ich suche einen Lösungsansatz, um eine Datenbank mit einer CSV-Datei abzugleichen (Adressen aktualisieren).Im Moment stehe ich etwas auf dem Schlauch :gruebel: Viele Grüße ... |
Re: Effiziente Synchronisation Datenbank CSV-Datei
Z.B. mit der Hilfe eines CSV-DataSets wie z.B. dem der JVCL
|
Re: Effiziente Synchronisation Datenbank CSV-Datei
Hi,
Zitat:
Viele Grüße ... |
Re: Effiziente Synchronisation Datenbank CSV-Datei
|
Re: Effiziente Synchronisation Datenbank CSV-Datei
Hallo,
schreib mal bitte ein bisserl mehr, was Du vorhast. Soll die Datenbank anhand der CSV-Dateien aktualisiert werden oder sollen die CSV-Dateien anhand der Datenbank aktualisiert werden oder soll ein gegenseitige Abgleich erfolgen? Wieviele CSV-Dateien werden für eine Aktualisierung benötigt, wie oft und welche Datenmengen? Wie ist der Aufbau der CSV-Dateien. Z.B. Alles in doppelten Hochkommata getrennt durch Semikolon. Zeichenfolgen in doppelten Hochkommata, nummerische Werte ohne Hochkommata. Feste Länge für alle Spalten... Wenn die CSV-Dateien nicht zu groß sind, könntest Du sie in eine Stringliste einlesen. Nun gehst Du her und liest diese Stringliste zeilenweise in eine zweite Stringliste ein, bei der Du Delimiter auf Dein Trennzeichen setzt und DelimitedText den Inhalt einer Zeile zuweist. Nun hast Du in jeder Zeile die einzelnen Werte und kannst sie Deiner Datenbankkomponente zuweisen. Das Ganze könnte (ungetestet) z. B. so aussehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var slCSV : TStringList; slZeile : TStringList; i : Integer; begin slCSV := TStringList.Create; slZeile := TStringList.Create; slCSV.LoadFromFile('Dateiname'); for i := 0 to slCSV.Count - 1 do Begin slZeile.Delimiter := ';'; slZeile.DelimitedText := slCSV[i]; if table.Locate('Schluesselspalte',slZeile[0]) then begin table.Edit; end else begin table.Append; table.FieldByName('Schluesselspalte').AsString := slZeile[0]; end; table.FieldByName('Name').AsString := slZeile[1]; table.FieldByName('VorName').AsString := slZeile[2]; table.FieldByName('Strasse').AsString := slZeile[3]; // ... table.Post; end; slZeile.Free; slCSV.Free; end; |
Re: Effiziente Synchronisation Datenbank CSV-Datei
Hallo,
ich bekomme von meinem PDA eine csv Datei mit allen Kontakten. In welcher Form, kann ich selber bestimmen. Im Moment einfach durch Semikolon getrennt ohne Hochkommas. Wie viele Datensätze das werden können? - Keine Ahnung, wie viele Kontaktdatensätze passen denn auf einen PDA? Ich tippe mal es werden selten mehr als 1000 sein. Viele Grüße .... //Edit: Sync in beide Richtungen. Geänderte Datensätze fürs Gerät sollen wieder in einer CSV-Datei landen |
Re: Effiziente Synchronisation Datenbank CSV-Datei
Hallo,
dann sollte das mit den Stringlisten ausreichend sein. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz