Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQLite einzelne Tabellen extrahieren, importieren, merge ? (https://www.delphipraxis.net/166548-sqlite-einzelne-tabellen-extrahieren-importieren-merge.html)

Satyr 17. Feb 2012 19:16

Datenbank: SQLite • Version: 3 • Zugriff über: Delphi2007

SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Guten Abend,

ich habe ein Programm das mit SQLite arbeitet. Das funktioniert bisher ganz gut.
Nun wollte ich aber noch zusätzlich einen kleinen Editor für die Daten basteln. Damit soll jeder User des Programms Daten erstellen und weitergeben können.
Ich möchte dabei aber nicht immer die komplette Datenbank austauschen sondern nur einzelne Tabellen oder auch Daten aus anderen Versionen der selben Tabelle anhängen können.

Geht sowas in SQLite? Ich bin kein Datenbank Experte, kann aber die Grundzüge der SQL Syntax.
Ich habe lange mit Paradox gearbeitet. Da war das einfach, weil jede Tabelle eine eigene Datei war. Jetzt bei SQLite beinhaltet aber ein File die gesamte Datenbank. Deshalb komme ich grade nicht weiter.

Über Hilfe und Denkanstöße, würde ich mich freuen :).

Gruß,
Andreas

jobo 17. Feb 2012 21:49

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
SQLScripte könntest Du hiermit verarbeiten (also ausführen):
http://www.sqlite.org/sqlite.html

Die Frage ist, wo Du sie her bekommst.

Eine Möglichkeit:
Um Daten auszutauschen, musst Du sie im Quellsystem auslesen und zu einem Insert Befehl umbauen. Im Zielsystem dann das Script laufen lassen (s.o.).Denkbar wären auch Änderungs- und Löschbefehle.
An der Stelle kommt schon die rote Kelle (ist ja schließlich Karneval). Leicht denkbar, wie "gefährlich" solche Befehle sein können. Also Thema Löschen und Ändern erstmal ausblenden.

Andere Möglichkeit:
Wenn Du den Datenaustausch mit Hilfe Deines eigenen Programms etwas lenken willst, empfiehlt sich der Austausch über CSV oder TSV Dateien.
Dein Programm übernimmt dann Export und Import, nach Bedarf. Hierbei ist durch das Verfahren automatisch klar, dass nichts geändert oder gelöscht werden kann. Es gibt nur Datenerweiterungen.

Das mal zum Einstieg.

weitere Möglichkeit zum Datentausch:
XML Dateien

Satyr 17. Feb 2012 22:22

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Ein SQLite File lässt sich nicht einfach in die Tabellenfiles aufsplitten, wie ich es bei Paradox hatte?
Die Tabelle als Textdatei exportieren sehe ich nicht als schwer... aber früher bei Paradox war ich es gewohnt, einfach nur die Tabellendatei zu ersetzen. Das war für mich "praktischer".

Naja, ich tüftel morgen mal rum. Vielen Dank :).

jobo 18. Feb 2012 07:39

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Natürlich könnte man bei SQLite Dateien tauschen. Wenn Dir das Prinzip ausreicht..
Meinen Link hast Du vermutlich nicht gelesen.

Nur mal als Idee, auch wenn es nicht so gedacht ist:
Es hindert Dich niemand daran, pro Tausch-Tabelle eine Datei, also eine SQLite DB, anzulegen.

Ein Select mit Join zwischen diesen Tabellen ist dann wohl kaum möglich.
P.S.: Das geht auch.

Satyr 18. Feb 2012 12:40

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
hmmm... das wäre ein völlig neuer Ansatz... das Blöde ist ja, das eigentliche Programm mit der SQLite DB ist schon fertig. Jetzt geht es nur darum für die Daten einen Editor zu bauen, der auch import/export kann.
Aber ich habe gestern Deinen Link noch gelesen und bin über ".dump" gestolpert. Damit sollte das gehen, wenn ich es richtig lese.
Nur wie ich beim Import die Daten anhänge, hab ich noch nicht rausbekommen. Aber das ist auch nicht das Wichtigste.

jobo 18. Feb 2012 13:03

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Wenn das Dump im MOde SQL durchführst, brauchst Du zum Import nur SQLITE3.Exe das enstandene InsertScript zum Fraß vorzuwerfen.

Satyr 18. Feb 2012 14:40

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Brauche ich das auch schon zum Export? Ich nutze die Aducom Komponenten und dachte ich könnte den Dump einfach per Query absetzen. Aber da bekomme ich nur Fehlermeldungen, das der Querycode fehlerhaft ist. Schon direkt beim .mode csv.
Wenn ich das ausserhalb des Programms in der SQLite shell mache, geht es aber *kopfkratz*.

jobo 18. Feb 2012 17:06

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Ich kenne die Komponenten nicht. Die Dump Funktion haben sie aber wahrscheinlich nicht implementiert.

Satyr 18. Feb 2012 17:25

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Ok, dann mache ich das per ShellExecute und sqlite3.exe. Finde ich zwar umständlich aber geht wohl nicht anders.
Vielen Dank für Deine Hinweise und Hilfe :).

Lion 10. Jul 2012 21:08

AW: SQLite einzelne Tabellen extrahieren, importieren, merge ?
 
Zitat:

Zitat von jobo (Beitrag 1151682)
Ein Select mit Join zwischen diesen Tabellen ist dann wohl kaum möglich.
P.S.: Das geht auch.

Was jetzt, geht das oder nicht? :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:16 Uhr.
Seite 1 von 2  1 2      

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