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

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

Locate в отфильтрованных данных


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

Лёша ©   (2009-04-29 10:10:00) 

Набор данных в TADOTable.
В начальном наборе запись присутствует. Locate её находит.
В отфильтрованном наборе запись отсутствует. Locate выдает эксепшин: "Record not found".
Анализ метода TCustomADODataSet.Locate показывает, что LocateRecord выполняется без учета фильтра, а потом вызывается Resync - там и ошибка.
Филитрую через OnFilterRecord.

Что делать, чтобы Locate выдавал False, а не raise?


Лёша   (2009-04-29 14:18:00) [21]

30 секунд это помимо медленого коннекта еще и выполнение на сервере. Я хоть и лаймер, но могу определить сколько записей возвращает запрос.


sniknik   (2009-04-29 14:18:00) [22]

> И почему "отфильтровывать их до нужного".
потому. что у тебя так и есть. другого объяснения 30секундам нет.


sniknik   (2009-04-29 14:16:00) [23]

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

> Просто, фильтровать, как нравится - по разному.
вот и получаются программы где 200 записей нужно 30 сек ждать.


Лёша   (2009-04-29 14:11:00) [24]

И почему "отфильтровывать их до нужного".
Просто, фильтровать, как нравится - по разному.


Лёша   (2009-04-29 14:07:00) [25]

sniknik ©   (29.04.09 14:03) [28]

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

А почему не может быть такого функционала?

> личная неприязнь к автору

Взаимно.


sniknik   (2009-04-29 14:03:00) [26]

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

не ожидал... ;(


Palladin   (2009-04-29 14:01:00) [27]

*покрылся холодным потом*


sniknik   (2009-04-29 14:00:00) [28]

> а если TADOQuery? :)
ну тогда просто личная неприязнь к автору... я же не зверь какой.


Игорь Шевченко   (2009-04-29 14:00:00) [29]

sniknik ©   (29.04.09 13:57) [23]


> хочешь к нам? ;)


нет, людей буду отговаривать :)


Palladin   (2009-04-29 13:57:00) [30]


> а вот если я увижу у кого в коде TADOTable, то поставлю
> вопрос об его увольнении.

а если TADOQuery? :)


sniknik   (2009-04-29 13:57:00) [31]

> как твоя контора называется ? :)
хочешь к нам? ;)


Игорь Шевченко   (2009-04-29 13:52:00) [32]


> а вот если я увижу у кого в коде TADOTable, то поставлю
> вопрос об его увольнении.


как твоя контора называется ? :)


sniknik   (2009-04-29 13:32:00) [33]

> Для [0] вопроса тип базы не имеет АБСОЛЮТНО никакого значения. Вопрос чисто по TCustomADODataSet.
т.е. если у тебя таблицы dbase например и ты думаешь (ошибаешься) что работаешь напрямую, то это равнозначно тому что у тебя mssql и ты знаешь что данные запрашиваются но по какой то причине все же пользуешься.
знать об этом совершенно никому не надо? я так не думаю.

> Данные с сервера "тянутся" секунд 30, получается около 200 записей.  
если данных всего 200 записей... то тридцать секунд это какую связь надо с сервером иметь? 0.01кб в сек?
скорее, т.к. у тебя TADOTable и фильтр, тянется там побольше (и намного).  

> И нахрена этот гимор с переселектами по 30 секунд.
а вот как раз для того чтобы не было по 30 сек.


sniknik   (2009-04-29 13:17:00) [34]

> Ну конечно, если вам дадут на правку код, где будет TTable, вы развернетесь и уйдете.
> А то вдруг успеют подбежать до правки и скажут: "Лаймер, у него в коде TTable!!!"
нет, ты опять ничего не понял... TTable и BDE вполне естественны и для файл сервера "самое то".
а вот если я увижу у кого в коде TADOTable, то поставлю вопрос об его увольнении.


Лёша   (2009-04-29 13:16:00) [35]

Palladin ©   (29.04.09 13:11) [18]

А что, уже сделали с переселектами? Не знал. Спасибо, обязательно посмотрю.

Хотя, ничего внешне "мощного" там нет. Фильтрация как у документа Excel.


Palladin   (2009-04-29 13:11:00) [36]


> У ExpressQuantumGrid мощная фильтация по локальным данным.

да ты что ты... прямо таки и по локальным... ну да ладно.... не буду спорить с профи.....


Anatoly Podgoretsky   (2009-04-29 13:06:00) [37]


> Лёша   (29.04.09 11:56) [12]

Не стоит указывать как нам отвечать.


Лёша   (2009-04-29 13:05:00) [38]


> тебе пытались втолковать про "отстойность" фильтров для
> отбора данных. раз уж используешь технологию созданную для
> работы  клиент серверами...

У ExpressQuantumGrid мощная фильтация по локальным данным. Навеное, им никто не втолковал, что это отстойность".

> это тебе только так кажется. только потому что эти данные
> у тебя лежат на той же машине, что программа, не значит
> что у тебя к ним прямой/локальный доступ.

Данные с сервера "тянутся" секунд 30, получается около 200 записей. Условия отбора теоритически можно вынести в Query, но для этого прийдется городить динамические запросы, потому что критерии отбора сложно даже скормить какой-нибудь ХП. И нахрена этот гимор с переселектами по 30 секунд.

> а отсутствие в вопросе типа базы так вообще ламеризмом пахнет

Для [0] вопроса тип базы не имеет АБСОЛЮТНО никакого значения. Вопрос чисто по TCustomADODataSet.

> один только ADOTable тянет на полного ламера

Ну конечно, если вам дадут на правку код, где будет TTable, вы развернетесь и уйдете. А то вдруг успеют подбежать до правки и скажут: "Лаймер, у него в коде TTable!!!"


sniknik   (2009-04-29 12:37:00) [39]

> Фильтрую только локальные данные.
это тебе только так кажется. только потому что эти данные у тебя лежат на той же машине, что программа, не значит что у тебя к ним прямой/локальный доступ.

ну... строго говоря, может ты действительно используешь "обходной путь" и пользуешься  локальными методами... но, судя продемонстрированному "пониманию" подходов к ADO, очень в этом сомневаюсь...
(а отсутствие в вопросе типа базы так вообще ламеризмом пахнет. хотя о чем это я, один только ADOTable тянет на полного ламера...)


sniknik   (2009-04-29 12:23:00) [40]

> чтобы открывать философскую дисскусию по дао справки
т.е. когда кто то спрашивает "как правильно перебегать дорогу в неположенном месте" ни в коем случае не надо философствовать о безопасности движения, надо просто сказать  "беги быстро". так?

> отсойности ADO
а кто это говорил? воистину, что ни говори поймут тебя все одно как сами хотят...

тебе пытались втолковать про "отстойность" фильтров для отбора данных. раз уж используешь технологию созданную для работы  клиент серверами...


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

Наверх

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