Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Abfrage auf Access .mdb (https://www.delphipraxis.net/118353-sql-abfrage-auf-access-mdb.html)

alphaflight83 6. Aug 2008 12:28

Re: SQL Abfrage auf Access .mdb
 
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.
:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz