Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Triedenie údajov v DBGride

Dobrý deň.
Mám v aplikácii vyriešené triedenie údajov v dbgride cez udalosť DBGridTitleClick kódom Formular.ADOTable3.Sort:=Column.FieldName;

Chcel by som poprosiť o radu.Ako mám vyriešiť triedenie údajov v dbgride podľa stĺpca 'Datum' a následne aj 'Cas' automaticky po spustení formulára? Nejak si s tým neviem rady.Vopred ďakujem za pomoc.

Předmět Autor Datum
Programovací jazyk prozradíš?
host 24.02.2009 17:45
host
Samozrejme.;-) Pracujem v Delphi. A údaje vkladám prostredníctvom ADOTable do tabulky v Accese.
Rado 24.02.2009 17:58
Rado
A takto nejako to nejde ? procedure TFormular.FormCreate(Sender: TObject); begin ADOTable3.Sort :=…
mijo 24.02.2009 20:35
mijo
Tak toto som kdesi pri hladani na nete videl ale netusil som co robi DESC a ASC. Funguje to. Este ra…
Rado 24.02.2009 21:26
Rado
Musel by mit tabulku otevrenou uz v navrhu a to znamena, ze pokud se nepripoji, nebude schopny osetr…
Jan Fiala 24.02.2009 21:41
Jan Fiala
A narazil som na ďalší problém a neviem si s ním rady. Je možné použiť ADOTable1.filter takýmto spôs…
Rado 25.02.2009 11:49
Rado
To, co jsi napsal neni filtr, ale SQL prikaz. Pokud to chces resit takto, nepouzivej ADOTable, ale A…
Jan Fiala 25.02.2009 12:09
Jan Fiala
Skúšal som to aj cez ADOQuery: ADOQuery1.Active:=false; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELE…
Rado 25.02.2009 12:57
Rado
datum posli ve formatu yyyymmdd Jinak jsi zavisly na formatu serveru navic musis datum poslat jako r…
Jan Fiala 25.02.2009 16:09
Jan Fiala
Vdaka za odpoved. Napriek tomu mam v tom chaos. Skusim to cele zhrnut. Datum aj cas posielam do acce…
Rado 25.02.2009 17:12
Rado
Tak triedenie podla ADOTable.Filter som cuduj sa svete zvladol.Posielanie datumu a casu som riesil t… poslední
Rado 26.02.2009 18:50
Rado

A narazil som na ďalší problém a neviem si s ním rady. Je možné použiť ADOTable1.filter takýmto spôsobom?
ADotable5.Filtered:=false;
ADOtable1.Filter:='SELECT * From Tabulka Where Datum ='+ FormatDateTime('dd.mm.yyyy',Now);
ADOTable5.Filtered:=true;
vyhadzuje mi: argumenty maju chybny typ, su mimo rozsahu alebo vzajomne koliduju pricom údaje(dátum a čas) v Tabulke mám vo formáte Datum a cas.
Ďalší problém mám so zobrazením času v dbgride, ktorý je prepojený cez adotable na access. Namiesto casu mi zobrazuje aj datum 30.12.1899 pricom pri vkladani udajov z datetimepickeru mam vo vlastnostiach datetimepicker nastavenz kind na dtk time a format na HH:mm.V Tabulke mam ale cas spravne. Ako bz blbol len stlpec cas v dbgride.
Dakujem ya rady.

Vdaka za odpoved. Napriek tomu mam v tom chaos. Skusim to cele zhrnut.
Datum aj cas posielam do accesu nastavenim na komponente datetimepicker. V accese mam mat format nastaveny na datum a cas alebo ako text ? Podla toho co mam v accese si nastavim aj pred datetimepicker ci to poslem ako datum vo formate ('yyyy.mm.dd') alebo to prekonvertujem na string ako DateToStr.
ADOTable3['Datum']:=FormatDateTime('yyyy.mm.dd',Da teTimePicker1.Date);
ADOTable3['Cas']:=FormatDateTime('HH.MM',DateTimeP icker2.Time);
alebo
ADOTable3['Datum']:=datetostr('yyyy.mm.dd',DateTim ePicker1.Date);
ADOTable3['Cas']:=timetostr('HH.MM',DateTimePicker 2.Time);

Vyhodnejsie by mi mozno bolo aj nadalej vyuzivat komponentu adotable a neprechadzat na adoquery - predsalen SQL nepoznam vobec. Takze bz som rad udaje vkladal do dbgridu cez ADOTable.filter.Ale netusim ako mam postavit podmienku ked chcem zobrazit udaje ktore maju datum mensi alebo vacsi (podla toho co zvolim) ako dnesni. Okrem tzchto chybovych hlaseni mi vyhadzuje k casu v dbgride aj datum aj napriek tomu ze vsade mam format nastaveny na cas(bez datumu).

Tak triedenie podla ADOTable.Filter som cuduj sa svete zvladol.Posielanie datumu a casu som riesil tak ze ich neprevadzam na stringy ale pouzivam TDateTime. Avsak mam stale problem s posielanymi udajmi. Aj napriek tomu ze posielam prostrednictvom adotable['Datum']:=DateTimePicker1.Date a adotable['Cas']:=DateTimePicker1.Time tak mi nakoniec v tabulke v accese ulozi do oboch poli aj datum aj cas. No a nasledne sa mi zobrazuju v dbgride, a to teda nechcem. Neporadili by ste mi prosim ako to vyriesit? Formatovat to nechcem lebo nasledne sa mi format TDateTime zmeni na string a ten neviem porovnavat. (porovnavam datumy kvoli zmene nejakych udajov a vyfarbovaniu riadkov v dbgride). Vdaka za akukolvek radu.

P.S:prave som nasiel na nete ako z typov TTime a TDate spravit typ TDateTime : Int(DateValue)+Frac(TimeValue). Na datum mi to opacne funguje, ciye dostanem do pola v tabulke uy len hodnotu TDate ale na cas to neslape. Cize adotable['Cas']:=Frac(DateTimePicker1.Time) nefunguje.

Zpět do poradny Odpovědět na původní otázku Nahoru