Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрос к MSSSQL не возвращает данные. Почему? [D7]


AV ©   (2012-02-02 12:09:00) 

Прошу прощения за предыдущий пост в Прочее.
Вот выдрал аз есмь, без приукрас:

Пишу
 ReOpenQByTwoDate(oq2, StartOfTheMonth(edtF.Date), StartOfTheDay(edtS.Date) );
     mmo1.Lines.Add('ReOpenQByTwoDate(oq2 ');
где
procedure ReOpenQByTwoDate(Q: TADOQuery; FD, SD: TDate); overload;
begin
  frmContactCentr.mmo1.Lines.Add(Q.SQL.Text);
  frmContactCentr.mmo1.Lines.Add(DateTimeToStr(FD));
  frmContactCentr.mmo1.Lines.Add(DateTimeToStr(SD));
 Q.Close;
 Q.Parameters.ParamByName('DTF').Value := FD;
 Q.Parameters.ParamByName('DTS').Value := SD;
 Q.Open;
 Q.First;
 if Q.IsEmpty then
  raise Exception.Create('Q.IsEmpty;ReOpenQByTwoDate; Q:TADOQuery');
end;

вывод
ReOpenQByTwoDate(oq2
select
 --IDOperation,
 --Step,
Count(*) [Количество],
CONVERT ( varchar(10), DateCreate, 121) [Дата],
 --[ФИО],
 [Филиал],
 case
   when Step = 0 then 'Консультация'
   else 'Заявка'
 end [Обращение],
 [ПредметОбращения] [Причина],
 [Источник],
 --[Адрес],
 --[АОН],
 --[Телефон] [КонтактТел],
 --'' [Описание],
 [Служба]
 --[Оператор]
 --*
from
 dbo.ActivRequestOW(:DTF, :DTS)
group by
 CONVERT ( varchar(10), DateCreate, 121),
 [Филиал],
 case
   when Step = 0 then 'Консультация'
   else 'Заявка'
 end,
 [ПредметОбращения],
 [Источник],
 [Служба]

01.02.2012
02.02.2012
Q.IsEmpty;ReOpenQByTwoDate; Q:TADOQuery
Exception

копирую в EM
select
 --IDOperation,
 --Step,
Count(*) [Количество],
CONVERT ( varchar(10), DateCreate, 121) [Дата],
 --[ФИО],
 [Филиал],
 case
   when Step = 0 then 'Консультация'
   else 'Заявка'
 end [Обращение],
 [ПредметОбращения] [Причина],
 [Источник],
 --[Адрес],
 --[АОН],
 --[Телефон] [КонтактТел],
 --'' [Описание],
 [Служба]
 --[Оператор]
 --*
from
 dbo.ActivRequestOW('01.02.2012', '02.02.2012')
group by
 CONVERT ( varchar(10), DateCreate, 121),
 [Филиал],
 case
   when Step = 0 then 'Консультация'
   else 'Заявка'
 end,
 [ПредметОбращения],
 [Источник],
 [Служба]
запускаю
140 rows

Почему из программы ничего не видит?


Ega23   (2012-02-02 14:15:00) [1]


> Но это нисколько не умаляет спасиба :)


Не булькает, да-с.  :)


AV   (2012-02-02 13:31:00) [2]

Блин, это же было очевидно..
Досадно за себя..
Но это нисколько не умаляет спасиба :)

..как так может быть. Работает пол-года, все нормально.
Раз и на тебе - ftUnknown стоит в типах..

Пожалуй, переписать стоит и вообще, всегда так делать

procedure ReOpenQByTwoDate(Q: TADOQuery; FD, SD: TDate); overload;
begin
//   frmContactCentr.mmo1.Lines.Add(Q.SQL.Text);
//   frmContactCentr.mmo1.Lines.Add(DateTimeToStr(FD));
//   frmContactCentr.mmo1.Lines.Add(DateTimeToStr(SD));
 Q.Close;
 Q.Parameters.ParamByName('DTF').DataType := ftDateTime;
 Q.Parameters.ParamByName('DTF').Value := FD;
 Q.Parameters.ParamByName('DTS').DataType := ftDateTime;
 Q.Parameters.ParamByName('DTS').Value := SD;
 Q.Open;
 Q.First;
 if Q.IsEmpty then
  rais


AV   (2012-02-02 12:55:00) [3]


> Ega23 ©   (02.02.12 12:23) [1]

Ты прав
Почему-то оказался сбит тип параметра ..
Спасибо


Ega23   (2012-02-02 12:23:00) [4]

Сначала попробуй без параметров, просто в SQL.TExt поставь свои даты.
Есть подозрение, что ты их как-то неправильно задал.


Наверх

Титульная страница Поиск, карта сайта Написать письмо