W jaki sposób zrobić aby po naciśnięciu na nagłówek kolumny w DBGrid kolumna sortowała się alfabetycznie??</delphi>
Ok dzięki, ale czy ktoś może mi podać formułę zapytania, które będzie obsługiwało zdarzenie OnClickTitle
SELECT Percent title_id, price, type
FROM titles
<b>ORDER BY</b> price <b>DESC</b>
Pewnie moje pytanie jest trywialne, ale czy podany text należy wpisać do procedury zdarzenia OnTitleClick???
Bo jeżeli tak to u mnie nie działa, albo robię coś źle javascript:append_smile(':(')
javascript:append_smile(':(')
Zapytanie wpisujesz w komponencie typu Query obsługującym bazę danych np InterBase obłyżyć należy za pomocą komponentu IBQuery
np tak
IBQuery.Close;
IBQuery.SQL.Clear;
IBQuery.SQL.Add(zapytanie);
IBQuery.Open;
gdzie zapytanie to Twoje "Select..... "
Mam na formularzu: DBGrid, Table, DataSource i Query.
We własności SQL dla Query wpisalem:
SELECT Numer, Nazwa, Adres FROM tblOrder ORDER BY Nazwa DESC
Dla wydarzenia OnTitleClick dla DBGrid wpisałem:
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT Numer, Nazwa, Adres FROM tabela ORDER BY Nazwa DESC');
Query1.Open;
Program się uruchamia, nie ma błędów, ale po naciśnięciu na nagłówek kolumny nic się nie dzieje.
Co robię niewłaściwie?
U mnie to samo, ale walcze
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
atrybut, wartosc: string;
begin
atrybut:=Column.Title.Caption;
if atrybut='ID' then wartosc:='NR_ID';
if atrybut='LP' then wartosc:='LP';
if atrybut='IMIĘ' then wartosc:='IMIE';
if atrybut='NAZWISKO' then wartosc:='NAZWISKO';
if atrybut='DATA URODZENIA' then wartosc:='DATA_UR';
if atrybut='ADRES' then wartosc:='ADRES';
if atrybut='TELEFON' then wartosc:='TELEFON';
with IBQuery1, SQL do begin
Close;
Clear;
Add('SELECT * FROM Book ORDER BY '+wartosc+';');
Open;
end;
end;
Wyrwane z mojego programu. Tylko przerób to na swoją bazę.