Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос в ADOQuery, не работает запрос с параметром 
V
    Опции темы
pshik
Дата 15.12.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Формирую запрос следущим образом:
Код

Query1.SQL.Clear;
Query1.SQL.Append('TRANSFORM Sum(PostupMaterProf.Kolvo) AS [Sum-Kolvo]');
Query1.SQL.Append('SELECT PostupMaterProf.CodMesta, PostupMaterProf.CodUchr, Sum(PostupMaterProf.Kolvo) AS [Itog] FROM');
Query1.SQL.Append('(select * from PostupMaterProf where PostupMaterProf.DataPost>=Data1 and  PostupMaterProf.DataPost<=Data2)');
Query1.SQL.Append('GROUP BY PostupMaterProf.CodMesta, PostupMaterProf.CodUchr');

If <условие 1> then
    Query.SQLAppend('PIVOT Format([DataPost],"mmm") In ("янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек");');
 else
   Query.SQL.Append('PIVOT Format([DataPost],"d");');

Query.Parameters.ParamByName('Data1').Value:=DBDateTimeEditEh1.Value;
Query.Parameters.ParamByName('Data2').Value:=DBDateTimeEditEh2.Value;
Query.Active:=true;


И собственно проблема: если условие 1 выполняется, то запрос работает, а в противном случае ругается, мол параметр Data1 не могу найти.... Как быть?

Это сообщение отредактировал(а) Rodman - 15.12.2008, 14:27
PM MAIL   Вверх
Rodman
Дата 15.12.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Во первых в SQL перед параметром должно стоять двоеточие...

а во вторых - задание объяви...
мне кажется и без условия наверно мона обойтись...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
pshik
Дата 15.12.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



что значит:
Цитата

а во вторых - задание объяви...


и как можно без условия, если там задаются поля таблицы. В зависимости от выбора пользователя поля могут быть как месяцами(январь...декабрь), так и днями месяца (1,2,3,4,5,6...31).
PM MAIL   Вверх
Rodman
Дата 15.12.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



ну ладно... ты первое понял?


M
Rodman
Модератор: Используй КОРРЕКТНУЮ подсветку кода!


Добавлено через 1 минуту и 54 секунды
Код

Query1.SQL.Clear;
Query1.SQL.Append('TRANSFORM Sum(PostupMaterProf.Kolvo) AS [Sum-Kolvo]');
Query1.SQL.Append('SELECT PostupMaterProf.CodMesta, PostupMaterProf.CodUchr, Sum(PostupMaterProf.Kolvo) AS [Itog] FROM');
Query1.SQL.Append('(select * from PostupMaterProf where PostupMaterProf.DataPost>=:Data1 and  PostupMaterProf.DataPost<=:Data2)');
Query1.SQL.Append('GROUP BY PostupMaterProf.CodMesta, PostupMaterProf.CodUchr');
If <условие 1> then
    Query.SQLAppend('PIVOT Format([DataPost],"mmm") In ("янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек");');
 else
   Query.SQL.Append('PIVOT Format([DataPost],"d");');
Query.Parameters.ParamByName('Data1').Value:=DBDateTimeEditEh1.Value;
Query.Parameters.ParamByName('Data2').Value:=DBDateTimeEditEh2.Value;
Query.Active:=true;
и зафигурить скобочки, для выделения параметров условия - тоже может помочь
PM MAIL WWW Skype GTalk YIM MSN   Вверх
pshik
Дата 15.12.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



с первым-то все понятно...
PM MAIL   Вверх
Rodman
Дата 15.12.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



Цитата(pshik @  15.12.2008,  14:49 Найти цитируемый пост)
с первым-то все понятно... 

и все равно тоже самое говорит?

ошибка была закономерна, если двоеточия не было... а теперь как?
PM MAIL WWW Skype GTalk YIM MSN   Вверх
pshik
  Дата 15.12.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



пардон, забыл сказать, заработало  smile 
просто интересно стало, как можно без условия
PM MAIL   Вверх
Rodman
Дата 15.12.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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



через OR.... 
я же не знаю какое ты там условие пихаешь и всей сути траблы...


если решил - помечай
PM MAIL WWW Skype GTalk YIM MSN   Вверх
pshik
Дата 15.12.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



проблема решена, спасибо за помощь
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.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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