Главная страница
    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
6-59843
alex55
2003-03-16 19:12
2003.05.19
NamedPipe


14-59854
kol
2003-05-01 15:47
2003.05.19
Серверы приложений


1-59697
Novichek
2003-05-07 15:12
2003.05.19
перевод из Dec в Hex


14-59883
Дмитрий К.К.
2003-04-29 06:18
2003.05.19
Именинники 29 апреля


8-59813
Saracin
2003-02-04 06:17
2003.05.19
Как получить HDC у TCanvas?





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