Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1178874470
KIV
2007-05-11 13:07
2007.06.03
рисовать по мировым координатам


3-1173856365
Sesh
2007-03-14 10:12
2007.06.03
DBF to Oracle


1-1175531284
Чайник
2007-04-02 20:28
2007.06.03
DLL с совместно используемой памятью


3-1174040531
salexn
2007-03-16 13:22
2007.06.03
Как прервать выполнение запроса в TClientDataSet


1-1176199023
roughneck
2007-04-10 13:57
2007.06.03
Как сохранить расположение Dockable - форм?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский