Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Вниз

TQuery.Locate   Найти похожие ветки 

 
Hermit   (2002-02-05 15:49) [0]

Существует ли какое-либо ограничение на работу Locate в TQuery, который выбирает данные из нескольких таблиц (около 10), размещенных на сервере?
Сейчас делаю выборку из таблиц, расположенных на сервере, пытаюсь зделать локейт на запись, которая заведомо попадает в выборку - результат отрицательный, если же результат выборки записываю во временную таблицу, затем простой Query (SELECT * FROM TableName) и по нему тот-же Locate - результат положительный. В чем проблема?


 
kserg@ukr.net   (2002-02-06 11:59) [1]

Никогда с такими глюками с Locate-ом не сталкивался.
Уважаемый, покажи код select-a
и Locate - сдается мне, что проблемы в последней.


 
yaJohn   (2002-02-06 12:06) [2]

Mojet Filter? Drugih idey net...


 
Hawk2   (2002-02-06 12:13) [3]

Если тебе нужно использовать Locate то может лучше через TTable, а если пользуешся TQuery, то проще через запрос.


 
kserg@ukr.net   (2002-02-06 12:38) [4]

>Hawk2 Уважаемый, если через запрос, то в рассматриваемом случае он вернет единственную запись...
Я например использую TQuery.Locate для позиционирования на измененную запись после Update и ReOpen обновленного набора данных.


 
User_OKA   (2002-02-06 13:45) [5]

to kserg@ukr.net (06.02.02 12:38)
А если набор данных содержит с десяток тысяч записей, хотел бы я посмотреть на выражение лица юзера, пока он дожидается такого позиционирования на измененную запись! :)


 
fnatali   (2002-02-06 14:07) [6]

User_OKA © (06.02.02 13:45)
А если набор данных содержит с десяток тысяч записей, хотел бы я посмотреть на выражение лица юзера, пока он дожидается такого позиционирования на измененную запись! :)

А такой большой набор - это очень дурной тон (IMHO), юзер всё равно не сможет с ним работать.


 
User_OKA   (2002-02-07 07:25) [7]

to fnatali © (06.02.02 14:07)
"А такой большой набор - это очень дурной тон"
Да кто тебе это сказал? Если отказаться от Locate и выдавать пользователю с помошью запросов то, что он желает видеть, набор может не десятки тысяч, а миллионы записей содержать!


 
Фэ   (2002-02-07 09:49) [8]

to User_OKA ©
В форуме Вам пока слушать надо, что специалисты говорят, а не давать самому советы.
Ваш совет про миллионы записей как раз об этом и говорит.
Для того и существует клиент-сервер, чтобы на клиента отдать минимум данных для снижения трафика в первую очередь.
Искать же все равно приходиться, в т.числе и Locate.

По сути же вопроса.
У меня эта ситуация встречалась и, на мой взгляд, это некорректность TDataSet.
Поскольку ситуация встречалась и с Paradox и с СУБД DBISAM и ее TDBISAMQuery, наследницей от TDataset.
Правда, с одной оговоркой - тогда, когда запрос содержал "WHERE .. IN(..)"


 
User_OKA   (2002-02-07 13:44) [9]

to Фэ
Советы советами, но, по-моему, форум - это ещё и обмен мнениями. Как говорится, что думаю, то и говорю, а если что и советую, исхожу из личного опыта. :)
Теперь про миллионы. При использовании TFIBQuery я могу и миллион записей выбрать, но клиенту все равно передадутся ровно столько, сколько умещается в TDBGrid (к вопросу о трафике). А вот уж если я Locate запущу, тогда и пойдет перебор всего миллиона. Если же юзеру предоставить возможность гибкой фильтрации, он сам с помощью фильтра может выбрать то, что ему нужно.
Теперь готов послушать, что специалисты говорят.


 
Johnmen   (2002-02-07 14:45) [10]

Конечно работать с большим НД - не вполне корректный подход.
Сначала надо попытаться его максимально сузить, накладывая ограничения в запросе.
А по поводу глюка - у меня друган сталкивался именно с таким !
[D5,IB5]



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-19269
hooky-mars
2002-02-20 19:19
2002.03.07
Tstrings


1-19203
tovSuhov
2002-02-18 16:56
2002.03.07
Как правильнее сделать?


1-19239
Yakshe
2002-02-20 03:00
2002.03.07
Как в ячейку таблицы


14-19345
fliz
2002-01-24 12:15
2002.03.07
кто что о ТВ6 думает?


3-19100
sky3d
2002-02-11 11:17
2002.03.07
Too many records lock on table





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский