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

Вниз

Поиск в найденном   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.043 c
15-1178864905
alexandr
2007-05-11 10:28
2007.06.03
я ухожу из delphimaster


15-1178569913
Германн
2007-05-08 00:31
2007.06.03
С жиру бесятся (Каждый сходит с ума по своему :)


15-1178542230
Kerk
2007-05-07 16:50
2007.06.03
Словарь Зализняка


2-1179232495
NotAva
2007-05-15 16:34
2007.06.03
сообщение на перерисовку


11-1160597543
doozer
2006-10-12 00:12
2007.06.03
RxLibrary и ICS WSocket