Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenaustausch prinzipielle Frage (https://www.delphipraxis.net/104043-datenaustausch-prinzipielle-frage.html)

haentschman 26. Nov 2007 14:38

Datenbank: Firebird • Version: 2.0 • Zugriff über: Zeos

Datenaustausch prinzipielle Frage
 
Hallo alle...

ich habe mal eine prinzipielle Frage... :roll:

Ich habe in der Firebird Datenbank eine Tabelle mit Voreinstellungen. Diese Tabelle ( der gesamte Inhalt ) soll per Updatedatei (Tabellenformat) aktualisiert werden.

... Bsp: mit der BDE könnte man die Updatedatei als xxx.db zur Verfügung stellen und einlesen.

---> da ich die Finger von der BDE lassen will kommt das nicht in Frage.

welches Dateiformat würdet Ihr für den Datenaustausch empfehlen :?:

Danke für Euer Interesse...

Phoenix 26. Nov 2007 14:39

Re: Datenaustausch prinzipielle Frage
 
XML

mkinzler 26. Nov 2007 14:41

Re: Datenaustausch prinzipielle Frage
 
Oder Updateskript

haentschman 26. Nov 2007 14:44

Re: Datenaustausch prinzipielle Frage
 
uups...das ging aber schnell. :-D

mit XML habe ich mich noch nicht beschäftigt... :oops: schaun wir mal... Danke

shmia 26. Nov 2007 14:48

Re: Datenaustausch prinzipielle Frage
 
Variante 1:
alle Datensätze als INSERT-Anweisungen in eine Text-Datei schreiben:
SQL-Code:
' Beispiel
INSERT INTO Voreinstellungen(Feld1, Feld2,...) VALUES(10, 'Color', ...)
INSERT INTO Voreinstellungen(Feld1, Feld2,...) VALUES(20, 'Font', ...)
Diese Inserts können dann später im Batchbetrieb ausgeführt werden.
Mein Programm ADO Desk kann dir diese INSERT - Anweisung aus jeder Datenbank Tabelle erzeugen.
Variante 2:
XML erzeugen und einlesen. Das ist zwar eine gute und stabile Lösung, kann aber relativ aufwändig werden.

haentschman 26. Nov 2007 14:57

Re: Datenaustausch prinzipielle Frage
 
...ich habe mal meine Komponentensammlung bemüht und

JvgExportXML

gefunden... damit sollte das Erstellen der XML Datei kein Problem darstellen. :roll:

ist JvXMLDatabase das Äquivalent zum einlesen ? ...irgendwie finde ich die kpl. Hilfe zu den Jedis nicht.. :oops:

Danke an alle...

[edit]
hallo shmia...
die eine Tabelle hat ca. 300 Datensätze mit 10 Feldern... auch wenns als Text so funktionieren würde für Änderungen an der Tabelle zu unübersichtlich :roll: Trotzdem Danke...
[/edit]

shmia 26. Nov 2007 15:21

Re: Datenaustausch prinzipielle Frage
 
Zitat:

Zitat von haentschman
hallo shmia...
die eine Tabelle hat ca. 300 Datensätze mit 10 Feldern... auch wenns als Text so funktionieren würde für Änderungen an der Tabelle zu unübersichtlich :roll: Trotzdem Danke...

Also das Argument kann ich nun überhaupt nicht nachvollziehen.
Du kannst dich doch nicht duschen ohne nass zu machen.
Und auch keine Tabellen updaten ohne entsprechende Informationen zu übertragen.
Angenommen von den 300 Datensätzen müssten 50 Datensätze geändert werden.
Es gibt nun 2 Möglichkeiten:
1.) alle Datensätze löschen und 300 INSERTS ausführen
hier wird sichergestellt, dass die Tabellen identisch sind
2.) 50 UPDATES ausführen (natürlich nur, wenn ein Primärschlüssel vorhanden ist)
hier sind nur die 50 Datensätze identisch, die restlichen können abweichen oder nicht vorhanden sein.

Mein Programm ADO Desk ist in der Lage sowohl INSERT als auch UPDATE Anweisungen zu erzeugen.
Man kann sogar 2 strukturgleiche Tabellen in 2 verschiedenen Datenbanken vergleichen lassen und sich
ein Update-Script (bestehend aus DELETE-, INSERT- und UPDATE Anweisungen) produzieren lassen.

haentschman 26. Nov 2007 15:27

Re: Datenaustausch prinzipielle Frage
 
nun ja...

da ich ADO Desk nicht habe mußte ich von manueller Erstellung / Änderung der Textdatei ausgehen... :roll:

...sicher ist mit den richtigen Werkzeugen alles einfacher... :-D

...aus diesem Grunde werde ich mich erst einmal gründlich mit XML beschäftigen.

Trotzdem Danke... :hi:

[edit]
PS: ich hätte eh Deine Variante 1 gewählt...weil die Überprüfung auf Veränderungen wahrscheinlich länger dauert als alle Datensätze zu schreiben...
[/edit]


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