Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADOTable + фильтр [D7, Access]


Страницы:   1 2 3

linox ©   (2008-12-01 13:35:00) 

Добрый день! У меня такой вопрос: есть ADOTable подключенный к базе Access через адоконнекш. У базе есть поле - Дата. Как сделать чтобы записи в таблице упорядовачились по дате автоматически.


linox   (2008-12-02 17:46:00) [21]

ну для професионалов которые здесь на сайте,.. я не думаю что для них сложно помочь сделать, то что я написал по фильтрации


sniknik   (2008-12-02 17:32:00) [22]

> Так мне не нужна клиент серверная технология...
база аксесс в нормальном режиме уже клиент серверная... несмотря на то, что файл базы лежит локально. но оно называется так не по признаку, что где лежит, а по принципам по которым работает.
т.что делай выводы.


linox   (2008-12-02 17:28:00) [23]

если можно,... то кинуть код )


linox   (2008-12-02 15:30:00) [24]

2 sniknik:
Так мне не нужна клиент серверная технология... мне просто нужно делать выборку по нескольким полям в базе данных ексес, вот и все... выборка по одному полю делается, если начинаю подлючать другое поле (нужен выбор из оставшихся) оно сбивает прошлый отбор и начинает новый по новому полю


sniknik   (2008-12-02 12:52:00) [25]

это... вы решили поиздеваться над человеком? типа пусть помучится, может и поумнеет, сам...

linox
то что ты делаешь это маразм, ADOTable не предназначен для работы! его сомнительное предназначение в переводе программ с BDE Table на ADO ADOTable, типа заменил компонент и все заработало, худо бедно, с потерей производительности, но заработало. и все, больше вариантов применений нет.

прислушался бы к первому совету
> ADOdataSet
> order by в селекте
все бы и работало быстрее и решалось проще, и про локальную сортировку(индекс) уже давно бы кто сказал, а ты все еще с фильтрами бьешься и сортировку видно серверным индексом хочешь  делать. не, так тоже можно, у аксесса есть такой режим, но это гораздо сложнее и запутанее в логике получается, + ограничения (вдруг нужно будет сортировку не имеющему индекса полю сделать?), + это эксклюзивно аксессный вариант, а для начала бы учился классической клиент серверной логике...

> не умею работать и никогда не работал
или учи, или бросай использование баз. нужно по работе? бросай работу, потому что без sql ничего путного у тебя не выйдет. (если только не вернешься/нужны исключительно старые файл серверные технологии, но для этого ты уже неправильную базу/средство доступа выбрал)


Anatoly Podgoretsky   (2008-12-02 11:15:00) [26]

Ты напрасно думаешь, что у него поля ввода фильтра пронумерованы от 1 до 10. Вот прямая речь


> Edit9,10, 11, 12 и т.д.


clickmaker   (2008-12-02 11:11:00) [27]

> если мне надо сделать ето в десяти едитах

метод можно еще сократить, если написать что-то типа
for i := 1 to EditCount do begin
 Edit := TEdit(FindComponent('Edit' + IntToStr(i)));
 ...


Anatoly Podgoretsky   (2008-12-02 09:33:00) [28]

> linox  (02.12.2008 9:29:32)  [32]

Логика простая, если 10 то и 10 проверок и конкатенаций


linox   (2008-12-02 09:29:00) [29]

2 clickmaker

я бы вынес формирование фильтра в отдельный метод

function BuildFilter: string;
begin
Result := '';
if Trim(edit9.Text)<>''  then
  Result := 'Название='''+edit9.Text+'''';
if Trim(edit10.Text) <> '' then
begin
  if (Result <> '') then Result := Result + ' and ';
  Result := Result + 'Дата='''+edit10.Text+'''';
end;
...
end;

я что-то не уловил логики (если мне надо сделать ето в десяти едитах)?


linox   (2008-12-01 18:49:00) [30]

ок... посмотрю.... если что напишу ))))


clickmaker   (2008-12-01 18:16:00) [31]

так же, как и Edit10
только понадобится еще функция DateToStr


linox   (2008-12-01 18:12:00) [32]

)))) ну а как я DateTimePicker привяжу к адотейбл?


clickmaker   (2008-12-01 18:10:00) [33]

запутать хочешь?
если для фильтрации, и они отдельно, то причем тут "DateTimePicker там не присунеш"?


linox   (2008-12-01 18:06:00) [34]

Edit9,10,11, 12 и т.д. я использую для фильтрации полей Adotable, данные из которой отображаются в DBGrid1


clickmaker   (2008-12-01 18:02:00) [35]

> данные я заполняю через DBGrid

а причем тут Edit10 тогда?


linox   (2008-12-01 17:58:00) [36]

так я только стаю на поле дата, начинаю вводить и сразу такая ошибка... данные я заполняю через DBGrid,  DateTimePicker там не присунеш....


clickmaker   (2008-12-01 17:05:00) [37]

а еще лучше - для дат использовать специально обученные компоненты, как DateTimePicker


clickmaker   (2008-12-01 17:04:00) [38]

ну правильно. Надо дождаться ввода хотя бы полной даты
Или подставлять что-то по умолчанию
Скажем, начинаешь вводить день - месяц и год подставляешь текущие


linox   (2008-12-01 17:00:00) [39]

только начинаю вводить цифру в поле дата, выдает эрор "Несовпадение типов" и указатель становится на ADOTable1.Filter:=BuildFilter;


linox   (2008-12-01 16:53:00) [40]

спасибо... сейчас попробую


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо