[Delphi] ADO - jak sprawdzić wynik zapytania?

0

Mam listę użytkowników zapisaną w bazie mysq z którą łącze się za pomocą ADO. Nie wiem jak sprawdzić wynik zapytania

SELECT * FROM uzytkownicy WHERE login = "' + username.Text + '" AND haslo = "' + password.Text + '";'

Używam ADOCommand. Chciałem zalogować użytkownika gdy w wyniku bedzie rekord i odrzucić gdy będzie pusty wynik.

Jak to wykonać?

0

Do zapytań typu select używa się komponentu ADOQuery a do operacji INSERT,UPDATE oraz innych nie zwracających wyniku używa się komponentu ADOCommand.
Jeśli używasz DBGrida, DataSource wystarczy odpowiednio poustawiać właściwości kontrolki,aby wyświetlić wynik zapytania.

0

Zamiast ADOCommand użyj ADOQuery :

ADOQuery1.close;
ADOQuery1.SQL.clear;
ADOQuery1.SQL.Add('twoje zapytanie w sql-u');
ADOQuery1.open;

Po .open ADOQuery1 jest twoim wynikiem zapytania a do ort! możesz się odwoływać np.

ADOQuery1.first
while not ADOQuery1.eof do
begin
ADOQuery1.fields.field[numer_obiektu np. jesli wyciągałeś id i login to id będzie pod indeksem 0 a login 1].value
lub
ADOQuery1.fieldsbyname['twoje pole np. login albo id'] (czy jakoś tak, ja stosuje poprzednia metodę)
ADOQuery1.next;
end;

jeśli chcesz sprawdzić czy ktoś podał prawidłowe dane to najlepiej zapytać sql-a ile jest rekordów spełniających kryteria(SELECT COUNT(*) FROM users WHERE login='xxx' AND pass='xxx'), jeśli nie ma takiego rekordu to ADOQuery1.fields.field[0] = NULL;

1 użytkowników online, w tym zalogowanych: 0, gości: 1