Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Вниз

Сложные запросы (Delphi+Access)   Найти похожие ветки 

 
AlexBut   (2003-04-28 09:43) [0]

Delphi я начал ковырять недавно, так что извините если вопрос будет глупый. Я работаю в области автоматизации бухучета и мне часто приходится иметь дело со "сложными запросами". Под ними я понимаю запросы, которые основаны на куче других запросов, которые в свою очередь основаны на куче других запросов и т.д. Т.е. получается что-то наподобие "снежного кома". Если использовать ACCESS, то эти запросы строятся очень легко. Опять же если использовать ACCESS-скую базу в которой эти запросы реализованы (без параметров), то тоже сложностей не возникает, НО как мне передать параметры для формирования запроса из формы-DELPHI в ACCESS(Параметры требуются не для конечного запроса, а допустим для начального или промежуточного)? Или есть другой способ создания таких запросов? Через создание промежуточных таблиц это довольно трудоемко.


 
Sergey13   (2003-04-28 09:51) [1]

2AlexBut (28.04.03 09:43)
>часто приходится иметь дело со "сложными запросами". Под ними я понимаю запросы, которые основаны на куче других запросов, которые в свою очередь основаны на куче других запросов и т.д. Т.е. получается что-то наподобие "снежного кома".
Что то очень уж страшно становится. Хоть бы примерчик для начала, а то и вообразить такое не под силу. 8-)


 
Dona   (2003-04-28 10:00) [2]

> НО как мне передать параметры для формирования запроса из формы-DELPHI в ACCESS

Посмотрите запросы с параметрами - компонент TQuery, например.


 
Digitman   (2003-04-28 10:42) [3]

Если перед запуском запрос строится динамически, то используй TQuery
Если используется ранее построенный и сохраненный (средствами Access) объект-запрос, то для запуска его нужен TStoredProc

Оба класса имеют списочное св-во Params, установив которое должным образом (переж запуском запроса) можно выполнить запрос с параметрами


 
KoluChi   (2003-04-28 11:18) [4]

with Query do
begin
Close();
Parameters.ParamByName("PARAM1").Value := Value1;
Parameters.ParamByName("PARAM2").Value := Value2;
Open();
end;

with StoredProc do
begin
Close();
Parameters.ParamByName("PARAM1").Value := Value1;
Parameters.ParamByName("PARAM2").Value := Value2;
ExecSQL();
end;


 
AlexBut   (2003-04-28 11:21) [5]

По поводу примера (Привожу самый элементарный для понимания сути):
Начальные остатки по складу хранятся в одной таблице(Код склада,Группа,Ном.номер,Колво,Цена и т.д.)
Шапки документов в другой (Номер документа, Дата, Контрагент,Склад и т.д.)
Строки документов в третьей (Номер документа, Группа, Ном.номер, Цена,Колво и т.д.)
Необходимо построить элементарную оборотку:(Остаток на начало, Приход, Расход, Остаток на конец) в суммовом и количественном измерении, сгруппированную по складам,группам,ном.номерам.
Причем отчет должен формироваться за различные интервалы времени. Т.е. в качестве параметров:(ДатаНачала, ДатаОкончания,Склад,Группа-если не указаны, то по всем)

Насчет TQuery: Его результаты можно использовать для другого TQuery?(Это вопрос, а не удивление т.к. может я просто этого не нашел). Если нет, то это мне не подходит в силу описанных выше причин.
Можно поподробнее немного узнать о том, что такое TStoredProc?
(Имеется ввиду возможности).
Потому что для получения информации из ACCESS-ского запроса (без параметров) достаточно использовать TTable или TQuery.


 
KoluChi   (2003-04-28 13:01) [6]

TStoredProc - это компонент для вызова хранимой процедуры в базе данных. Для Access - это просто запрос, описанный в базе. Т.е. в базе создаем запрос с параметрами на выборку нужных нам данных. А в программе используем TStoredProc или TQuery для вызова запроса. Как присваивать параметры - я указал.

> Насчет TQuery: Его результаты можно использовать для другого
> TQuery?(Это вопрос, а не удивление т.к. может я просто этого
> не нашел). Если нет, то это мне не подходит в силу описанных
> выше причин.

Есть такие компоненты, но это совсем не нужно. Делаем в базе запрос/процедуру и можем вызывать ее из другого запроса - и всЁ.



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

Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
9-59531
Axis_of_Evil
2002-12-09 09:27
2003.05.19
Вопросы к местному гоблинарию


3-59595
AlexGof
2003-04-28 12:51
2003.05.19
Проблемы с уровнем изоляции в MS SQL !


3-59624
Remis
2003-04-29 01:37
2003.05.19
SQL добавлание записи


1-59764
Vint
2003-05-06 10:14
2003.05.19
RX


3-59545
Jaxtor
2003-04-24 10:22
2003.05.19
Транзакции





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