AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Daten in SQLite-DB importieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten in SQLite-DB importieren

Ein Thema von DanXe · begonnen am 16. Mai 2015 · letzter Beitrag vom 17. Mai 2015
Antwort Antwort
DanXe

Registriert seit: 15. Mai 2015
8 Beiträge
 
Delphi XE7 Professional
 
#1

Daten in SQLite-DB importieren

  Alt 16. Mai 2015, 16:58
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:
<?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&#8364; </Preis>
           <Anzahl> 3 </Anzahl>
         </Artikel>
         <Artikel>
         //Viele andere Artikeln
         </Artikel>
       </Artikeln>
     </Kunde>
     //Andere Kunden mit anderen Bestellungen, Artikeln
     </Kunde>
  </story>
Um die Daten zu speichern, habe ich folgende Tabellen erstellt (1-N Beziehung):
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 http://fluuux.de/2012/08/der-umgang-...ien-in-delphi/ beschäftigt.

Ausserdem habe ich mir das hier auch angeschaut. http://www.delphipraxis.net/128090-x...portieren.html
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)

.

Geändert von DanXe (16. Mai 2015 um 17:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Daten in SQLite-DB importieren

  Alt 17. Mai 2015, 15:39
Tja, wenn du die Enterprise-Version hättest, dann wäre das recht simpel.
  • XML-Datenbindung-Wizard starten
  • XML-Datei angeben
  • Klassen bauen lassen
Und dann einfach die Daten laden und abarbeiten
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
DanXe

Registriert seit: 15. Mai 2015
8 Beiträge
 
Delphi XE7 Professional
 
#3

AW: Daten in SQLite-DB importieren

  Alt 17. Mai 2015, 16:33
Vielen Dank für deine Antwort!

Zitat:
Tja, wenn du die Enterprise-Version hättest...
Ich habe leider die Professional-Version..
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:53 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