Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Есть ли альтернатива запросу с whrere in   Найти похожие ветки 

 
DimonNew   (2004-11-15 14:03) [0]

Привет, помогите пож-та. Есть Query, в который вставляется строка примерного вида с where field1 in (123,...,544). То, что перечисляется в in, заполняется как стока в Delphi и может быть несколько сотен чисел в ней. Так вот, программа зависает на некоторое время во время выполнения запроса и потом выдает ошибку, что истек TimeOut. Увеличение его не помогает. Подскажите пож-та, как можно избавиться от этого, может альтернативный запрос?


 
clickmaker ©   (2004-11-15 14:08) [1]

если есть непрерывность, то можно частично вместо in юзать between. На крайняк поднять св-во TimeOut у Query (если TADOQuery)


 
Ega23 ©   (2004-11-15 14:20) [2]

Я думаю, не в in дело.


 
Layner ©   (2004-11-15 14:22) [3]

123,...,544 - эти числа откуда берете? С др. таблицы? Тогда пожайлуста, пишите так: where field1 in (SELECT id FROM table WHERE ...) На стороне сервера это вычислится моментом.


 
DimonNew   (2004-11-15 14:22) [4]

Непрерывности нет. Время увеличил у ADOQuery до 300, прошло без ошибки,но очень долго ждал, пока Open этот запрос сделает.


 
Ega23 ©   (2004-11-15 14:26) [5]

123,...,544 - эти числа откуда берете? С др. таблицы? Тогда пожайлуста, пишите так: where field1 in (SELECT id FROM table WHERE ...) На стороне сервера это вычислится моментом.

Вопрос спорный. Я бы не стал так категорично утверждать.


 
Ega23 ©   (2004-11-15 14:27) [6]

Непрерывности нет. Время увеличил у ADOQuery до 300, прошло без ошибки,но очень долго ждал, пока Open этот запрос сделает.

Сам запрос оптимизировать никак?


 
DimonNew   (2004-11-15 14:28) [7]

Да это верно Layner © сам пробовал, но эти числа выбирает пользователь, вернее какие-то строки в ListBox, с которыми связаны идентификаторы, их-то я и загоняю в in, если их мало, то проходит запрос нормально, если много, то беда.


 
msguns ©   (2004-11-15 14:34) [8]

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



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

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
3-1100117875
VitGun
2004-11-10 23:17
2004.12.12
Можно ли использовать один гереатор для двух триггеров?


4-1099035890
Erik1
2004-10-29 11:44
2004.12.12
Где найти модуль для модальных диалогов?


3-1100296583
SergP
2004-11-13 00:56
2004.12.12
Создание таблицы DBASE IV. Что посоветуете использовать?


4-1098954487
Colonel
2004-10-28 13:08
2004.12.12
Обработчик клавиатуры/мыши


3-1100620186
Богдан
2004-11-16 18:49
2004.12.12
Поля TDBGrid