Einzelnen Beitrag anzeigen

ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#20

Re: XML Daten in DB importieren

  Alt 24. Jan 2009, 19:48
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
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat