Einzelnen Beitrag anzeigen

Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: dBase Datenbank dauerhaft verbinden mit Apollo

  Alt 13. Dez 2005, 10:04
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
Frank
  Mit Zitat antworten Zitat