Форум: "Базы";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
ВнизПоиск в найденном Найти похожие ветки
← →
databaser (2007-03-09 21:26) [0]Для решения задачи использовал сохранение последнего запроса и вставку его в рекурсивную генерацию многокритериального запроса в "хвост".
Теперь же запросы не генерируются, а жестко забиты в БД. Как быть?
Вариант с сохранением последнего запроса использовал потому что БД read-only и не хотелось бы создавать отдельной таблицы для записи. Насколько я понял применить толком запрос к данным в датасете нереально, разве что Filter, но я так понял он не поможет в моих условиях.
← →
MsGuns © (2007-03-10 00:05) [1]>рекурсивную генерацию многокритериального запроса
На 9-то таблицах ? Что-то пан мудрствует ;)
← →
databaser (2007-03-10 06:55) [2]MsGuns © (10.03.07 00:05) [1]
В смысле? ) Ведь "степень" рекурсии зависит от количества критериев (вложенности запросов с использованием IN). К тому же количество критериев может измениться в ближайшее время в большую сторону. Поэтому подобная генерация была более чем удобна (правда, исключительно, для меня).
Хотелось бы услышать крик "эй, парень, ты все делаешь через задн*цу", мне бы уже стало легче +)
Что по поводу Subj"a?
← →
MsGuns © (2007-03-10 14:08) [3]>databaser (10.03.07 06:55) [2]
>Ведь "степень" рекурсии зависит от количества критериев (вложенности запросов с использованием IN). К тому же количество критериев может измениться в ближайшее время в большую сторону. Поэтому подобная генерация была более чем удобна (правда, исключительно, для меня).
п-п-п-ереведи
>Хотелось бы услышать крик "эй, парень, ты все делаешь через задн*цу", мне бы уже стало легче +)
"эй, парень, ты все делаешь через задн*цу" !!!
← →
Johnmen © (2007-03-10 14:46) [4]
> (вложенности запросов с использованием IN)
"эй, парень, ты все делаешь через задн*цу" !!!
← →
Desdechado © (2007-03-10 18:30) [5]причем задницу с хроническим геморроем
← →
databaser (2007-03-10 22:16) [6]MsGuns © (10.03.07 14:08) [3]
Desdechado © (10.03.07 18:30) [5]
Пасибо, мужыки. Стало легче. Я так понял вариант с задницей - это вариант использования динамически генерируемых вложенных запросов? Вариант с кучей запросов встроенных в mdb непосредственно - нормуль?
Johnmen © (10.03.07 14:46) [4]
а как можно иначе подойти к решению?
← →
Johnmen © (2007-03-10 23:22) [7]
> databaser (10.03.07 22:16) [6]
> а как можно иначе подойти к решению?
К решению чего? Я не понял...
А задница - это динамически генерируемых вложенных запросов.
Вариант с кучей запросов встроенных в mdb непосредственно тоже задница... Если, конечно, они не описывают в необходимой и достаточной мере все потребности, используя параметрическое задание необходимых параметров.
← →
databaser (2007-03-10 23:38) [8]
> Johnmen © (10.03.07 23:22) [7]
> К решению чего? Я не понял...
Как можно оформить запрос на выборку по нескольким критериям без SELECT ... IN (SELECT ...)? То что запросы переехали в БД не изменило их вида практически ) Просто теперь они жестко забиты в нужном виде.
К тому же я сам увел вас от subj"a. Как можно организовать поиск в найденном при сложившихся условиях?
Ужасно вышло что тема оказалась разбита на два топика =( Надо было вместе пытаться. http://delphimaster.net/view/3-1173464588/
← →
Johnmen © (2007-03-11 01:26) [9]
> SELECT ...WHERE [A]... IN (SELECT ...WHERE [B]...)
заменяется на SELECT ...WHERE [A] and [B]..., что очевидно.
Если из нескольких таблиц, то, соответственно, используем соединение.
← →
databaser (2007-03-11 22:41) [10]Johnmen © (11.03.07 01:26) [9]
С этим понял.
Давайте вернемся все-таки к subj. С ним пока темный лес. Как организовать поиск в найденном? Можно ли это сделать не создавая отдельной таблицы с записью туда последней выборки?
Насколько оптимален вариант с запоминанием текста последнего запроса и использования вложенности?
Возможно ли это организовать в рамках параметризированных запросов?
← →
Johnmen © (2007-03-11 23:10) [11]
> databaser (11.03.07 22:41) [10]
> Как организовать поиск в найденном? Можно ли это сделать
> не создавая отдельной таблицы с записью туда последней выборки?
[9]
> Насколько оптимален вариант с запоминанием текста последнего
> запроса и использования вложенности?
Ни насколько. Он вообще крайне неэффективен.
> Возможно ли это организовать в рамках параметризированных
> запросов?
Конечно.
← →
MsGuns © (2007-03-11 23:46) [12]>databaser (11.03.07 22:41) [10]
>Как организовать поиск в найденном? Можно ли это сделать не создавая отдельной таблицы с записью туда последней выборки?with TADODataSet.Create(nil) do
try
Connection := SourceDataSet.Connection;
CommandText := "Select S.* from ("+SourceDataSet.CommandText+") S "+
<Строка с доп.условиями>
Open;
<Дела с возвращенным рекордсетом>
Close;
finally
Free;
end;
← →
MsGuns © (2007-03-11 23:48) [13]Если НД, где надо искать, не слишком большой, можно организовать сканирование и найденные записи показывать в стрингриде или TClientDataSet.
← →
databaser (2007-03-12 10:01) [14]MsGuns © (11.03.07 23:46) [12]
Спасибо, в принципе так и делал (сохранял последний запрос потом искал в нем, правда запрос делал через зад). В качестве CommandText"a может быть использована хранимая процедура (ее имя) в данном случае?
MsGuns © (11.03.07 23:48) [13]
Сканирование отпадает. НД не мал.
← →
MsGuns © (2007-03-12 22:54) [15]>databaser (12.03.07 10:01) [14]
>Спасибо, в принципе так и делал (сохранял последний запрос потом искал в нем, правда запрос делал через зад). В качестве CommandText"a может быть использована хранимая процедура (ее имя) в данном случае?
В акцесе нет ХП.
А если вместо акцеса MSSQL, то тоже нельзя, ибо Select from SP мелкомягкие не поддерживают. В этих случаях надо либо писать на сервере функцию и запускать ее, либо делать "через зад", используя рекордсет AdoCommand
← →
Mike Kouzmine © (2007-03-12 23:27) [16]MsGuns © (12.03.07 22:54) [15] Вообще-то встроенные запросы трактуются как хп.
← →
MsGuns © (2007-03-13 01:29) [17]>Mike Kouzmine © (12.03.07 23:27) [16]
>Вообще-то встроенные запросы трактуются как хп.
Поясни, будь так добр, можно со ссылкой
← →
databaser (2007-03-13 05:49) [18]MsGuns © (12.03.07 22:54) [15]
MsGuns © (13.03.07 01:29) [17]
Ссылки нету под рукой, но Mike Kouzmine верно утверждает. Запросы из mdb воспринимаются как SP, проверить можно используя TADODataSet (cmStoredProc) -> CommandText.
← →
MsGuns © (2007-03-13 21:11) [19]>databaser (13.03.07 05:49) [18]
>Ссылки нету под рукой, но Mike Kouzmine верно утверждает. Запросы из mdb воспринимаются как SP, проверить можно используя TADODataSet (cmStoredProc) -> CommandText.
Осталось выяснить только две вещи:
1. КЕМ воспринимаются ?
2. Что понимается под глаголом "ВОСПРИНИМАЮТСЯ" ?
← →
Johnmen © (2007-03-13 22:31) [20]
> MsGuns © (13.03.07 21:11) [19]
> 1. КЕМ воспринимаются ?
> 2. Что понимается под глаголом "ВОСПРИНИМАЮТСЯ" ?
1. АДО.
2. Выглядят так (с т.з. АДО), будто бы это настоящие ХП.
← →
MsGuns © (2007-03-14 22:16) [21]>Johnmen © (13.03.07 22:31) [20]
Спасибо, приму к сведению
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.097 c