hi
schreibe gerade ein Programm welches aus einer
XML datei verschiedene ID´s ausließt und diese dann an eine Funktion übergibt, welche eine
DB connection herstellt und diese werte dann prüft. Jedoch öffnet er bei jedem funktionsaufruf die
DB was bei 5000 zugriffen zuviel ist.
Nun würde ich gerne eine funktion/ procedure schreiben, welche meine
DB beim Programmstart öffnen und offen lässt und erst beim beenden wieder schließt. Das ganze soll in delphi mit Apollo realisiert werden und greift auf eine dBase
DB zu.
hier ist der Code den ich bissher geschrieben habe. hier wird bei jedem übergebenem Node die
DB geöffnet und danach geschlossen.
Delphi-Quellcode:
//Datenbanken testen
procedure TForm1.DBtestID(Node: TdomNode);
var
Elem: TDomElement;
id:
String;
begin
if (node.nodeName = '
XX')
then begin
elem:= node.findFirstChildElement;
while (elem <>
nil)
do begin
if (Elem.nodeName = '
unterknoten')
then begin
id:= elem.getAttributeLiteralValue('
id');
id:= RightStr(id,length(id)-6);
Elem:= elem.findNextSiblingElement;
TestID(id);
//aufruf der proedure TestDB
end;
end;
end;
end;
//Öffnet eine DB und prüft ob ID in DB vorhanden ist und gibt die falsche ID aus
procedure TForm1.TestID(id:
String);
var
test:
String;
begin
ApolloTable1.Active:= false;
ApolloTable1.Filtered:= False;
ApolloTable1.Filter:= '
id= ' + queryEncode(id, 16);
ApolloTable1.Filtered:= True;
ApolloTable1.Open;
test:= ApolloTable1.FieldByName('
wort').AsString;
if (test = '
')
then begin
Label1.Caption:= '
zu folgenden ID´s existieren keine Einträge';
ListBox1.Items.Append(id)
end;
end;
Wäre nett wenn Ihr mir helfen könntet.
VG
Verrückter