Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML Daten in DB importieren (https://www.delphipraxis.net/128090-xml-daten-db-importieren.html)

haentschman 24. Jan 2009 16:10

Re: XML Daten in DB importieren
 
ah jetzt ja.... :gruebel:
Zitat:

.Properties.Value('value'))
...habe ich noch nicht gebraucht. Liegt wahrscheinlich an der Struktur der XML. Gut zu wissen, was es noch so gibt :wink:

ryLIX 24. Jan 2009 16:28

Re: XML Daten in DB importieren
 
Jetzt muss ich nur noch die embedded DB zum laufen bekommen -.-
Mal sehen wie lang ich dafr brauch :roll:

haentschman 24. Jan 2009 16:37

Re: XML Daten in DB importieren
 
fbclient.dll
firebird.conf
firebird.msg
icudt30.dll
icuin30.dll
icuuc30.dll

...diese Dateien ins Anwendungsverzeichnis
- DB mit z.B. IBExpert erstellen
- DB in beliebiges Verzeichnis
- Connection abhängig von Zugriffskomponenten
Tipps für Zeos:
- Host muß ein Leerstring sein ''
- User und Paßwort zuweisen (Standard: SYSDBA / masterkey)
- Database: lokaler Ordner wo die Datenbank liegt.

:hi:

ryLIX 24. Jan 2009 17:13

Re: XML Daten in DB importieren
 
Ne ich hab mich für DISQLite3 und SQLite3.dll entschieden :)
Der Fehler war die ganze Zeit im Statement habs nur vor blindheit nich gesehen :oops:

haentschman 24. Jan 2009 17:22

Re: XML Daten in DB importieren
 
...viel Spaß beim Entdecken der unbekannten Möglichkeiten. :P

ryLIX 24. Jan 2009 17:26

Re: XML Daten in DB importieren
 
Unbekannt sind die nicht :)
Hab sqlite3 schon in einem .Net Projekt im Einsatz :)

Aber die Geschwindigkeit wird schön.

Muss ich nur noch die Routine für den Import der anderen Daten schreiben.
Hab gesehen das die JVCL ein DBTreeView liefert :)
Muss ich das auch nimmer suchen :stupid:

Danke nochmal für deine Hilfe :)

haentschman 24. Jan 2009 17:32

Re: XML Daten in DB importieren
 
Zitat:

Hab gesehen das die JVCL ein DBTreeView liefert
...benutze ich auch gern...schmerzfrei wenn man die Datenfelder entsprechend anlegt.
...hier habe ich mal erklärt worauf es ankommt.
kurze Erklärung
:hi:

ryLIX 24. Jan 2009 18:26

Re: XML Daten in DB importieren
 
Ui du bist mein Held heute :)
Im Hintergrund rattert die Festplatte weil durch deine Hilfe das ganze sehr einfach geworden ist :)
Ich hoffe das ich das ganze dann heut abend noch in die DB bekomme :D
Dann hab ich nen großen vortschritt gemacht was Wissen und Projekt angeht :) :dp: :dp:

haentschman 24. Jan 2009 18:40

Re: XML Daten in DB importieren
 
...und ich habe meine guten Taten für dieses Jahr weg... :mrgreen: :cheer:

ryLIX 24. Jan 2009 18:48

Re: XML Daten in DB importieren
 
Und ich tu auch noch eine :)

Hier die Routine die ich nun zusammen gestellt habe.
Falls jemand das gleiche bzw ein ähnliches Problem hat kann er sich daran orientieren :)

Delphi-Quellcode:
procedure TForm2.xml_batch(FileName: string);
var
  tblName: string;
  FSW: string;
  B: Integer;
  I: Integer;
  PSW: string;
  A: Integer;
begin
  JvSimpleXML1.LoadFromFile(FileName);
  for I := 0 to JvSimpleXML1.Root.Items.Item[0].Items.Count - 1 do
  begin
    tblName := '';
    PSW := '';
    FSW := '';
    tblName := StringReplace(JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Name, '-', '_', [rfReplaceAll]);
    DISQLite3db.Execute16('CREATE TABLE [' + tblName + '] ([ID] INTEGER NOT NULL PRIMARY KEY,[FSW] TEXT NOT NULL,[PSW] TEXT NULL,[COMMENT] TEXT NULL)');
    for A := 0 to JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Count - 1 do
    begin
      FSW := JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Item[A].Properties.Value('value');
      for B := 0 to JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Item[A].Items.Count - 1 do
      begin
        PSW := PSW + JvSimpleXML1.Root.Items.Item[0].Items.Item[I].Items.Item[A].Items.Item[B].Properties.Value('value') + #10;
      end;
      DISQLite3db.Execute16('INSERT INTO ' + tblName + ' VALUES (NULL,"' + FSW + '","' + PSW + '", "")');
    end;
  end;
end;
Noch eine kurze anmerkung:
Ich habe wie schon erwähnt SQLite3 im einsatz.
Code:
[ID] INTEGER NOT NULL PRIMARY KEY
Bewirkt bei SQLite3 ein Integerfeld mit Autoincrement :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Seite 2 von 3     12 3      

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