Einzelnen Beitrag anzeigen

Benutzerbild von alphaflight83
alphaflight83

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

Re: SQL Abfrage auf Access .mdb

  Alt 6. Aug 2008, 12:28
Geschafft:

Es lag wirklich an der Aufrufreihenfolge.
Seltsamerweise hat der einfache Aufruf ohne SQLabfrage an gleicher Stelle funktioniert,
mit SQL Abfrage leider nicht.
Die Abfrage habe ich nun testweise ins Datenmodul verschoben und voila,
hier funktioniert dann alles wie es soll:

Delphi-Quellcode:
with ADOQueryClients do
begin
  Close;
  SQL.Text := 'SELECT ID FROM Clients WHERE Status = ''Y'' ';
  // SQL.Text := 'SELECT ID FROM Clients WHERE Status LIKE :Status ';
  // funktioniert in diesem Fall genau wie:
  // SQL.Text := 'SELECT ID FROM Clients WHERE Status = :Status ';
  // Parameters.ParamByName('Status').Value:='Y';
  Open;
  NumberOfClients := RecordCount;
end;

SetLength(Client_ID_Array, NumberOfClients);

for i := 0 to (NumberOfClients - 1) do
begin
  Client_ID_Array[i]:= ADOQueryClients.FieldList.FieldByName ('ID').AsInteger;
  ADOQueryClients.Next;
end;
Ein Last; hab ich nicht benötigt, im Gegenteil:
Setze ich in diesem Fall Last; wird nur noch der letzte Datensatz ins Array übernommen.

@ mkinzler:
Habs gerade nochmal ausprobiert:
Da mein Status nur Y ist, funktioniert LIKE ohne Joker genau wie =.
Oder anders formuliert: Lässt man den Joker weg, funktioniert LIKE allgemein wie =.

Vielen Dank nochmal an alle.
Die Fehlersuche hätte ohne die hier gefallenen Denkanstöße einiges länger gebraucht.
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay
  Mit Zitat antworten Zitat