...ich zeige dir einfach mal eine procedure
Delphi-Quellcode:
// Import XML Gebührenordnung
procedure TDMDB.XMLImportGE;
var
AnzahlDS: Integer;
A: Integer;
I: Integer;
Inhalt: TStringList;
begin
Inhalt:= TStringList.Create;
try
JvSimpleXML1.FileName:= InstallPfad + '
GE.xml';
AnzahlDS:= JvSimpleXML1.Root.Items.Item[1].Items.Count;
if Start
then
begin
Splash.JvXPProgressBar1.Max:= AnzahlDS;
Splash.JvXPProgressBar1.Position:= 0;
Splash.JvLabel1.Caption:= '
Import GebüH...';
end;
Splash.JvXPProgressBar1.Refresh;
Splash.JvLabel1.Refresh;
for A:= 0
to AnzahlDS -1
do
begin
try
Inhalt.Clear;
Splash.JvXPProgressBar1.Refresh;
for I:= 0
to 2
do
begin
Inhalt.Add(JvSimpleXML1.Root.Items.Item[1].Items.Item[A].Items.Item[I].Value);
end;
ZQueryDiv.SQL.Text:= '
insert into GEBUH (GRUPPE,UNTERGRUPPE,TEXT,GEBUHID,LEISTUNG,NUMMER,ICON) values ';
ZQueryDiv.SQL.Add('
(:Gruppe,:Untergruppe,:Text,:GebuhID,:Leistung,:Nummer,:Icon)');
ZQueryDiv.ParamByName('
Gruppe').Value:= A+2;
ZQueryDiv.ParamByName('
Untergruppe').Value:= 1;
ZQueryDiv.ParamByName('
Text').Value:= Inhalt.Strings[2] + '
' + Inhalt.Strings[1];
ZQueryDiv.ParamByName('
GebuhID').Value:= StrToInt(Inhalt.Strings[0]);
ZQueryDiv.ParamByName('
Leistung').Value:= Inhalt.Strings[1];
ZQueryDiv.ParamByName('
Nummer').Value:= Inhalt.Strings[2];
ZQueryDiv.ParamByName('
Icon').Value:= 2;
ZQueryDiv.ExecSQL;
except
FehlerCode:= '
E422';
Fehlerstatus:= False;
Fehlertext:= '
Import der GebüH fehlgeschlagen. ';
raise;
end;
if Start
then Splash.JvXPProgressBar1.Position:= A;
Splash.JvXPProgressBar1.Refresh;
end;
finally
Inhalt.Free;
end;
try
if FileExists(InstallPfad + '
GE.xml')
then DeleteFile(InstallPfad + '
GE.xml');
except
FehlerCode:= '
E421';
Fehlerstatus:= True;
Fehlertext:= '
Löschen der Datei GE.xml fehlgeschlagen. ';
raise;
end;
FGebuH.GEBUHEinlesen;
end;
Inhalt.Add(JvSimpleXML1.Root.Items.Item[1].Items.Item[A].Items.Item[I].Value);
...mit diesem Part mußt du dann etwas experimentieren entsprechend der Struktur deiner
XML.
Der Ablauf ist im Prinzip folgender:
- 1. Schleife A -- Anzahl der Datensätze / Nodes
- 2. Schleife I -- Schreibt die Values des Nodes in eine StringList, I(MAX) entspricht der Menge der Values in der StringList (in diesem Falle 2..bei dir vieleicht anders)
- 3. Insert in
DB mit den Werten der StringList
....usw.
viel Spaß...