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

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

Поиск в найденном [D7, MS Access]


Страницы:   1 2

databaser ©   (2007-03-09 21:26:00) 

Для решения задачи использовал сохранение последнего запроса и вставку его в рекурсивную генерацию многокритериального запроса в "хвост".

Теперь же запросы не генерируются, а жестко забиты в БД. Как быть?

Вариант с сохранением последнего запроса использовал потому что БД read-only и не хотелось бы создавать отдельной таблицы для записи. Насколько я понял применить толком запрос к данным в датасете нереально, разве что Filter, но я так понял он не поможет в моих условиях.


MsGuns   (2007-03-14 22:16:00) [1]

>Johnmen ©   (13.03.07 22:31) [20]

Спасибо, приму к сведению


Johnmen   (2007-03-13 22:31:00) [2]


> MsGuns ©   (13.03.07 21:11) [19]
> 1. КЕМ воспринимаются ?
> 2. Что понимается под глаголом "ВОСПРИНИМАЮТСЯ" ?


1. АДО.
2. Выглядят так (с т.з. АДО), будто бы это настоящие ХП.


MsGuns   (2007-03-13 21:11:00) [3]

>databaser   (13.03.07 05:49) [18]
>Ссылки нету под рукой, но Mike Kouzmine верно утверждает. Запросы из mdb воспринимаются как SP, проверить можно используя TADODataSet (cmStoredProc) -> CommandText.

Осталось выяснить только две вещи:
1. КЕМ воспринимаются ?
2. Что понимается под глаголом "ВОСПРИНИМАЮТСЯ" ?


databaser   (2007-03-13 05:49:00) [4]

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 01:29:00) [5]

>Mike Kouzmine ©   (12.03.07 23:27) [16]
>Вообще-то встроенные запросы трактуются как хп.

Поясни, будь так добр, можно со ссылкой


Mike Kouzmine   (2007-03-12 23:27:00) [6]

MsGuns ©   (12.03.07 22:54) [15] Вообще-то встроенные запросы трактуются как хп.


MsGuns   (2007-03-12 22:54:00) [7]

>databaser   (12.03.07 10:01) [14]
>Спасибо, в принципе так и делал (сохранял последний запрос потом искал в нем, правда запрос делал через зад). В качестве CommandText'a может быть использована хранимая процедура (ее имя) в данном случае?

В акцесе нет ХП.
А если вместо акцеса MSSQL, то тоже нельзя, ибо Select from SP мелкомягкие не поддерживают. В этих случаях надо либо писать на сервере функцию и запускать ее, либо делать "через зад", используя рекордсет AdoCommand


databaser   (2007-03-12 10:01:00) [8]

MsGuns ©   (11.03.07 23:46) [12]
Спасибо, в принципе так и делал (сохранял последний запрос потом искал в нем, правда запрос делал через зад). В качестве CommandText'a может быть использована хранимая процедура (ее имя) в данном случае?

MsGuns ©   (11.03.07 23:48) [13]
Сканирование отпадает. НД не мал.


MsGuns   (2007-03-11 23:48:00) [9]

Если НД, где надо искать, не слишком большой, можно организовать сканирование и найденные записи показывать в стрингриде или TClientDataSet.


MsGuns   (2007-03-11 23:46:00) [10]

>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;


Johnmen   (2007-03-11 23:10:00) [11]


> databaser   (11.03.07 22:41) [10]
>  Как организовать поиск в найденном? Можно ли это сделать
> не создавая отдельной таблицы с записью туда последней выборки?

[9]

> Насколько оптимален вариант с запоминанием текста последнего
> запроса и использования вложенности?

Ни насколько. Он вообще крайне неэффективен.

> Возможно ли это организовать в рамках параметризированных
> запросов?

Конечно.


databaser   (2007-03-11 22:41:00) [12]

Johnmen ©   (11.03.07 01:26) [9]
С этим понял.

Давайте вернемся все-таки к subj. С ним пока темный лес. Как организовать поиск в найденном? Можно ли это сделать не создавая отдельной таблицы с записью туда последней выборки?

Насколько оптимален вариант с запоминанием текста последнего запроса и использования вложенности?

Возможно ли это организовать в рамках параметризированных запросов?


Johnmen   (2007-03-11 01:26:00) [13]


>  SELECT ...WHERE [A]... IN (SELECT ...WHERE [B]...)
заменяется на SELECT ...WHERE [A] and [B]..., что очевидно.
Если из нескольких таблиц, то, соответственно, используем соединение.


databaser   (2007-03-10 23:38:00) [14]


> Johnmen ©   (10.03.07 23:22) [7]
> К решению чего? Я не понял...


Как можно оформить запрос на выборку по нескольким критериям без SELECT ... IN (SELECT ...)? То что запросы переехали в БД не изменило их вида практически ) Просто теперь они жестко забиты в нужном виде.

К тому же я сам увел вас от subj'a. Как можно организовать поиск в найденном при сложившихся условиях?

Ужасно вышло что тема оказалась разбита на два топика =( Надо было вместе пытаться. http://www.delphimaster.ru/cgi-bin/forum.pl?id=1173464588&n=1


Johnmen   (2007-03-10 23:22:00) [15]


> databaser   (10.03.07 22:16) [6]
> а как можно иначе подойти к решению?

К решению чего? Я не понял...
А задница - это динамически генерируемых вложенныхзапросов.
Вариант с кучей запросов встроенных в mdb непосредственнотоже задница... Если, конечно, они не описывают в необходимой и достаточной мере все потребности, используя параметрическое задание необходимых параметров.


databaser   (2007-03-10 22:16:00) [16]

MsGuns ©   (10.03.07 14:08) [3]
Desdechado ©   (10.03.07 18:30) [5]
Пасибо, мужыки. Стало легче. Я так понял вариант с задницей - это вариант использования динамически генерируемых вложенных запросов? Вариант с кучей запросов встроенных в mdb непосредственно - нормуль?

Johnmen ©   (10.03.07 14:46) [4]
а как можно иначе подойти к решению?


Desdechado   (2007-03-10 18:30:00) [17]

причем задницу с хроническим геморроем


Johnmen   (2007-03-10 14:46:00) [18]


>  (вложенности запросов с использованием IN)

"эй, парень, ты все делаешь через задн*цу" !!!


MsGuns   (2007-03-10 14:08:00) [19]

>databaser   (10.03.07 06:55) [2]
>Ведь "степень" рекурсии зависит от количества критериев (вложенности запросов с использованием IN). К тому же количество критериев может измениться в ближайшее время в большую сторону. Поэтому подобная генерация была более чем удобна (правда, исключительно, для меня).

п-п-п-ереведи

>Хотелось бы услышать крик "эй, парень, ты все делаешь через задн*цу", мне бы уже стало легче +)

"эй, парень, ты все делаешь через задн*цу" !!!


databaser   (2007-03-10 06:55:00) [20]

MsGuns ©   (10.03.07 00:05) [1]
В смысле? ) Ведь "степень" рекурсии зависит от количества критериев (вложенности запросов с использованием IN). К тому же количество критериев может измениться в ближайшее время в большую сторону. Поэтому подобная генерация была более чем удобна (правда, исключительно, для меня).

Хотелось бы услышать крик "эй, парень, ты все делаешь через задн*цу", мне бы уже стало легче +)

Что по поводу Subj'a?


Страницы:   1 2

Наверх

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