Hi,
Du mußt doch bloß die Datenbank vor Deiner while-Schleife öffnen.
Delphi-Quellcode:
//Datenbanken testen
procedure TForm1.DBtestID(Node: TdomNode);
var
Elem: TDomElement;
id:
String;
begin
ApolloTable1.Active:= True;
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;
ApolloTable1.Active:= false;
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.Filtered:= False;
ApolloTable1.Filter:= '
id= ' + queryEncode(id, 16);
ApolloTable1.Filtered:= True;
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;
Ist die Table indiziert ? Wenn ja ist ein Seek wesentlich schneller als ein Filter.
Gruß
Frank