Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Параметры Query из запроса 
:(
    Опции темы
harakiri
Дата 8.1.2013, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 17.1.2011

Репутация: нет
Всего: нет



Здравствуйте уважаемые форумчане. Созрел вопрос, с которым я не могу разобраться самостоятельно. Есть БД Access, приложение на делфи, на DataModule лежит frxReport. Есть идея в БД создать отдельную таблицу в которой будут храниться запросы для построения отчетов. Ну например запись в таблице следующего вида:
Код

SELECT o.DateOut FROM Operation o WHERE o.ID = :ID
 
Данная строка считывается из БД и передается в Query для выполнения этого же запроса. Собственно сам вопрос, каким образом можно из данной строки определить количество нужных запросу параметров, их имена и передать им данные? И возможна ли вообще реализация такой затеи. Простите если не совсем внятно объяснил вопрос, старался как мог smile Заранее спасибо.

Это сообщение отредактировал(а) harakiri - 8.1.2013, 11:49
PM MAIL   Вверх
Данкинг
Дата 8.1.2013, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(harakiri @  8.1.2013,  12:48 Найти цитируемый пост)
Простите если не совсем внятно объяснил вопрос

Точно: я вот ничего не понял. smile 
Наводящие вопросы:
1) В каком виде хранятся данные в таблице с параметрами?
2) Где именно требуется считать параметры?

Это сообщение отредактировал(а) Данкинг - 8.1.2013, 12:07


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Vas
Дата 8.1.2013, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(harakiri @  8.1.2013,  11:48 Найти цитируемый пост)
Собственно сам вопрос, каким образом можно из данной строки определить количество нужных запросу параметров

Посчитать. 
А если серьезно, то присвой своему ADOQuery запрос в рантайме, сделай ему Prepare и посмотри в цикле какие параметры распарсил сам Query. Читай их и передавай им значения.

Добавлено через 6 минут и 5 секунд
Пардон, слегка обманул, не Prepare делать надо, а ParseSQL
Код

  ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, True);
  ADOQuery1.Parameters.ParamByName('DateBeg').Value:=FormatDateTime('dd.mm.yyyy',DlgGReport.FrameDateEnter1.DateTimePicker1.Date)+' 00:00:00';
  ADOQuery1.Parameters.ParamByName('DateEnd').Value:=FormatDateTime('dd.mm.yyyy',DlgGReport.FrameDateEnter1.DateTimePicker2.Date)+' 23:59:59';



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 8.1.2013, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(harakiri @  8.1.2013,  11:48 Найти цитируемый пост)
каким образом можно из данной строки определить количество нужных запросу параметров

У квери есть ParamCount.
PM MAIL   Вверх
harakiri
Дата 8.1.2013, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 17.1.2011

Репутация: нет
Всего: нет



Структура таблицы Reports:
1. IDRep
2.NameRep
3.QueryText

По нажатии на батон, я передаю MainQuery параметр NameRep, и выбираю из таблицы Reports текст запроса:
Код

SELECT r.QueryText FROM Reports r WHERE r.NameRep = :NameRep


Далее результат я присваиваю компоненту Query следующее:
Код


RepQuery.SQL.Add(MainRep.FieldValues['QueryText']) ;


И получается, что у RepQuery(запрос на основе результатов которого будет строиться отчет) SQL будет равен, ну например
Код

SELECT o.DateOut FROM Operation o WHERE o.ID = :ID and o.DateIn = :DateIn


Но заведомо я не знаю, какой именно запрос будет передаваться в RepQuery и сколько параметров у него будет. Вот как-то так. Наверное я еще больше запутал. smile 
PM MAIL   Вверх
Vas
Дата 9.1.2013, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Цитата(harakiri @  8.1.2013,  15:30 Найти цитируемый пост)
Но заведомо я не знаю, какой именно запрос будет передаваться в RepQuery и сколько параметров у него будет. Вот как-то так. Наверное я еще больше запутал.

уже сказали вот
Цитата(Vas @  8.1.2013,  12:40 Найти цитируемый пост)
Пардон, слегка обманул, не Prepare делать надо, а ParseSQL



Цитата(harakiri @  8.1.2013,  15:30 Найти цитируемый пост)
о заведомо я не знаю, какой именно запрос будет передаваться в RepQuery и сколько параметров у него будет.

тоже уже сказали
Цитата(Akella @  8.1.2013,  14:26 Найти цитируемый пост)
У квери есть ParamCount. 


Или за вас весь код написать?


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
harakiri
Дата 9.1.2013, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 17.1.2011

Репутация: нет
Всего: нет



Vas, нет весь код я писать не просил. Спасибо. Разобрался.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0855 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.