ПредишенСледващото

Как сортирането в DBGrid д

Необходимо е да се подреди, като кликнете върху заглавието на колоната
Сега аз го правя по този начин:

с (dbgView.DataSource.DataSet като TClientDataSet) направя, ако Active след това затвори;
ако Column.Field.FieldKind = fkData тогава
с (dbgView.DataSource.DataSet като TClientDataSet) направи
започвам
IndexDefs.Clear;
IndexDefs.Add ( "SortIndex", AnsiUpperCase (Column.FieldName), []);
IndexName: = "SortIndex";
приключи;
(DbgView.DataSource.DataSet като TClientDataSet) .Open;

Проблемът е, че полето за вид търсене, така че може да не, и те най-често искат.
Може ли някой да направи такова нещо - да споделят опит и всичко, което не съм го измисли Струва ми се, не е много гъвкав и тромава.

1. Като щракнете върху заглавието на колоната, проверете полето за въвеждане. И ако това търсене, да направи нищо.

2. Сортиране по терена - ключ за полето търсене.

Първи тази област не е в клиента, и сортиране на заявката

>> еленов мъх Eater
Сега правя, просто друго, което изхвърли искането, когато се постави във въпроса, но това не е опция, плоча поле NAME не е непременно свързано с ID, което мога да използвам

>> еленов мъх Eater
Мислех, че за това, но аз трябва да напиша универсална форма, която е мрежа, а само това, което няма да има данни от набор от данни - не е известно по-рано

можете да разбира за превода, освен klientdataseta още набор от данни, както и списък на съвпадение полета търсене полета в базата данни, и реалното, а след това динамично замести в ORDER BY заявка за необходимите полета

но мога по някакъв начин възможно най-лесно?

Какъв е критерият за вас ", простотата"?

Не бих искал да отида в искане

просто глупав, за да добавите ORDER BY клауза в крайна сметка? и изведнъж има някаква нишка глупости си струва, след което не може да се постави ORDER BY,
и наистина, ако само можех да стигна до от ClientDataSet clientdataset "и - това е друг, и така да ги както премине.

Тя може да има някакъв друг начин

Не мога да кажа, че е по-лесно, докато не разберете повече методи

Водачът onTitleClic:
ClientDataSet.IndexName: = "NameField"
Това е всичко.

Извинете. Ето как:
процедура TForm.GridTitleClick (Колона: TColumn);
започвам
ClientDataSet.IndexFieldNames: = Column.FieldName;
приключи;


> Andrushk (06.02.03 15:50)
> Аз не искам да навлизам в искане
>
> Само глупав, за да добавите ORDER BY клауза в крайна сметка? и изведнъж има някаква нишка
> Уърт глупости, след което не може да се постави ORDER BY,

Destvitel направите няколко сървъра.
ORDER BY не може да постави - защо сте?

Куп на сървъра:
изберете т. *, lookUp.name
от т, справка
където t.id = lookUp.id
подредени по lookUp.name

> Andrushk (06.02.03 15:50)
> Аз не искам да навлизам в искане
>
> Само глупав, за да добавите ORDER BY клауза в крайна сметка? и изведнъж има някаква нишка
> Crap стои след което е невъзможно да се сложи ORDER BY

Противоречи на себе си. Можете да поставите само вие защо - за да реши кога да се обзаложим. IMHO.

Мислил съм, ако има такива, можете да поискате да се сложи край vpendyurit ORDER BY. като всеки

заявка към сървъра, той е в смисъла, в набора от данни?

Между другото, можете да напишете по този начин:

изберете т. *
от т, справка
където t.id = lookUp.id
подредени по lookUp.name

Ако можете да напишете :. Изберете т *, lookUp.name - би било нищо izmudryatsya със заповед

Той все още може да има няколко начина.


> Andrushk (06.02.03 16:36)
> Искане до сървъра, той е в смисъла, в набора от данни?

вие доставчик каква е причината?

> Може все още има няколко начина.

Това е възможно чрез ClientDataSet.CommandText.

Но както аз го разбирам, на клиента, няма смисъл в извършването на проверка, защото аз няма да изберете данни от целия набор от данни, но само един от тях на разположение на клиента


> Andrushk (06.02.03 16:52)
> Dataset-> предоставящо> clientdataset
>
> Но както аз го разбирам, на клиента, няма смисъл да правиш
> Заявки, защото аз няма да се избират данните от целия набор
> Data, но само един от тях на разположение на клиента

Трябва внимателно да прочетете за Мидас.
TQuery (TTable) -> предоставящо> не clientdataset, което сте написали.
ClientDataSet.CommandText-изпраща молба до доставчика, който определя къде е необходимо да се вдигне и да се върне (изтриване, вмъкване, обновяване) данни. Друго интересно нещо е, Delta и ApplyUpdate - не пропускайте да прочетете за тях.

Защо трябва да TQuery, аз работя с оракул през DBExpress и като набор от данни "и да използват TSQLDataSet

но за искането на доставчика - това е необходимо да се провери дали това е вярно, то изглежда, че проблемът е опростена

-)) Чудя се как не знаят ApplyUpdate обикновено може да работи с ClientDataSet "-ти

но като ми clientdataset "д в SELECT-е, в клаузата FROM уточни, че искам да избирате от всичко, което е в масива-е?

т.е. дали е възможно да се направи така, че данните са като една чиния, и Аз ще посоча в clientdataset на поискване "и

по принцип би искал да напише такова искане, че тя включва всички полета от набора от данни + всички области търсене

Самата ISP изглежда, че трябва да се промени.
OnGetDataSetPoperties - погледнете там, можете да посочите кой искате да промените.

Не, това е, което правя:
там SQLDataSet1 - това някакъв вид разследване, с един куп сложни условия

чрез доставчикът е свързан с ClientDataSet1

Така че можете да пишете в ClientDataSet1.CommandText:

SELECT * FROM SQLDataSet1

- Ами на отмива по този начин, и как тя наистина е възможно да се напише?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!