![]() |
Daten in SQLite-DB importieren
Hallo zusammen
ich schreibe in zwei Anwendungen die Daten mit SQlite.dll in Datenbankdateien. Es handelt sich um eine kleine SQLite3 Datenbank mit einigen Tabellen. Bei einer Anwendung muss ich noch die alten xml-Daten in meine neue DB haben. Die Datei hat folgende Struktur:
Code:
Um die Daten zu speichern, habe ich folgende Tabellen erstellt (1-N Beziehung):
<?xml version= 1.0 encoding= utf-8?>
<story> <Beschreibung> <Webseite> www...</Webseite> <KundenAnzahl> 32 </Kunden_Anzahl> </Beschreibung> <Kunde> <Daten> <KundenNr> 2 </KundenNr> <Name> ... </Name> <Vorname> ... </Vorname> <Beruf> ... </Beruf> <GeburtsDatum> ... </GeburtsDatum> <Telefon> ... </Telefon> <Email> ... </Email> </Daten> <Lieferdresse> <Strasse> ...</Strasse> <Plz> ...</Plz> <Ort>...</Ort> <Land>...</Land> </Lieferdresse> <Bestellungen> <Bestellung> <BestID> 9</BestID> <Bemerkung> RLL </Bemerkung> <BestellDatum> 11.02.2008</BestellDatum> <LieferDatum> 13.02.2008</LieferDatum> <Anzahl> 1 </Anzahl> </Bestellung> <Bestellung> <BestID> 23 </BestID> <Bemerkung> FF DC </Bemerkung> <BestellDatum> 23.06.2008</BestellDatum> <LieferDatum> 26.06.2008</LieferDatum> <Anzahl> 3 </Anzahl> </Bestellung> </Bestellungen> <Artikeln> <Artikel> <ArtikelID> 23 </ArtikelID> <Bezeichnung> Xx.. </Bezeichnung> <Preis> 109€ </Preis> <Anzahl> 3 </Anzahl> </Artikel> <Artikel> //Viele andere Artikeln </Artikel> </Artikeln> </Kunde> //Andere Kunden mit anderen Bestellungen, Artikeln </Kunde> </story>
Code:
CREATE TABLE Beschreibung (Webseite Varchar(255), Kunden_Anzahl Integer);';
CREATE TABLE Kunden (KundeID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, Vorname Varchar(40), Nachname Varchar(40), GeburtsDatum Date, Beruf Varchar(55), Strasse Varchar(55), Plz Integer, Ort Varchar(30), Land Varchar (30), Telefon Varchar(40), Email Varchar(40));'; CREATE TABLE Bestellungen( BestID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, Bemerkung Varchar(30), BestellDatum Date, LieferDatum Date, Anzahl Integer, KundeID Integer));'; CREATE TABLE Artikeln (ArtikelID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, Bezeichnung Varchar (50), Preis Float, Anzahl Integer, KundeID Integer));'; Ich habe leider bis jetzt nie was mit XML zu tun gehabt. Ich habe bei Wikipedia ein paar Grundlagen zu XML (Schema,Aufbau..) durchgelesen und mich mit diesem Beispielprojekt ![]() Ausserdem habe ich mir das hier auch angeschaut. ![]() Hier wird SimpleXML (von Jedis) eingesetzt. Wäre es möglich, die Daten zu importieren, ohne SimpleXML zu benutzen? Wie lese ich die Datei (Werte unter den Nodes) aus.. Ich habe mehrere Tabellen und nicht nur eine. Die Daten müssen nur ein mal in die DB gebracht werden. Vielleicht kann mir jemand eine Prozedur zeigen. Ich wäre echt dankbar wenn mir jemand etwas Hilfe geben könnte (da ich nie was mit XML zutun gehabt habe) . |
AW: Daten in SQLite-DB importieren
Tja, wenn du die Enterprise-Version hättest, dann wäre das recht simpel.
Delphi-Quellcode:
procedure ProcessKunde( AKunde: IXMLKundeType );
begin Writeln( 'KundenNr: ', AKunde.Daten.KundenNr ); Writeln( 'Name : ', AKunde.Daten.Name ); Writeln( 'Vorname : ', AKunde.Daten.Vorname ); Writeln( 'Beruf : ', AKunde.Daten.Beruf ); end; procedure ProcessKundeList( AKundeList: IXMLKundeTypeList ); var LIdx: Integer; begin for LIdx := 0 to AKundeList.Count - 1 do ProcessKunde( AKundeList.Items[ LIdx ] ); end; procedure ProcessStory( AStory: IXMLStoryType ); begin ProcessKundeList( AStory.Kunde ); end; procedure ProcessStoryFile( const AFilename: string ); var LStory: IXMLStoryType; begin LStory := Loadstory( AFilename ); ProcessStory( LStory ); end; begin try CoInitialize( nil ); try ProcessStoryFile( '..\..\Data\Daten.xml' ); finally CoUninitialize; end; except on E: Exception do Writeln( E.ClassName, ': ', E.Message ); end; ReadLn; end. |
AW: Daten in SQLite-DB importieren
Vielen Dank für deine Antwort!
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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