Einzelnen Beitrag anzeigen

Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
148 Beiträge
 
Delphi 12 Athens
 
#1

SQL Abfrage auf Access .mdb

  Alt 6. Aug 2008, 10:47
Datenbank: Access MDB • Zugriff über: ADO
Tag DP-Gemeinde,
bin jetzt schon ne weile im Forum angemeldet,
und konnte auch schon einige Lösungen hier finden.
Jetzt komme ich hier auch mal zu einem Eigenen Beitrag.

Folgendes Problem steht bei mir an:
Mein Programm soll mehrere Clients permanent überwachen,
nun soll bei Programmstart eine lokale Access Liste angelegt werden,
die aus Informationen der Clients besteht, welche am Server angemeldet sind.
Aus dieser Liste wiederum sollen nun die IDs aller Clients die abgefragt werden sollen,
in Delphi in ein dyn Feld geschrieben werden.
Hierzu wiederum wird am Server eine Flag gesetzt, die in der Access Tabelle das Feld Status auf 'Y' setzt
(Etwas ungünstig, da String obwohl Bool gereicht hätte, geht aber Server seitig nun nicht mehr anders)

Langer Rede kurzer Sinn:
Momentan rufe ich einfach alle IDs der in der Liste eingetragenen Clients ab, ohne auf den Status zu achten.
Delphi-Quellcode:
 DataModule.ADOTableClients.Active := True;
 NumberOfClients := DataModule.ADOTableClients.RecordCount;
 SetLength(Client_ID_Array, NumberOfClients);

 for i := 0 to (NumberOfClients - 1) do
   begin
   Client_ID_Array[i]:= DataModule.ADOTableClients.FieldByName ('ID').AsInteger;
   DataModule.ADOTableClients.Next;
 end;
Das funktioniert auch wunderbar, nur werden später eben auch die Geräte gepollt die gar nicht benötigt werden.
Um das zu ändern nehme ich statt der Table eine Query:
Delphi-Quellcode:
with DataModule.ADOQueryClients do
  begin
    Close;
    SQL.Text := 'SELECT ID FROM Clients WHERE Status LIKE :Status ';
    Parameters.ParamByName('Status').Value:='Y';
    Open;
    NumberOfClients := RowsAffected;
  end;
Kompiliert auch, tut aber nichts, sprich NumberOfClients ist immer 0.
Da ich die Delphi Geschichte jetzt erst seit knapp 2 Monaten mache und die Zeit mit Datenbanken
in Delphi noch erheblich kürzer ist, kanns natürlich sein, dass das nur Blödsinn und der Fehler recht simpel ist.
Ich find ihn aber leider nicht
Dann muss natürlich auch noch die for Schleife für die Query angepasst werden, wobei ich hier momentan auch noch etwas auf dem Schlauch stehe.

Wäre schön wenn mir hier jemand bei diesem Problem helfen könnte.
  Mit Zitat antworten Zitat