Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.05.2010, 17:48
katjenina katjenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 4
Репутация: 10
По умолчанию Quick Reports

есть quickrep1,в qrdbtext dataset query1, в query в sql прописано select * from pp. На кнопку прописан код:
Код:
procedure TForm23.Button1Click(Sender: TObject);
begin
query1.sql.clear;
query1.sql.Add('select * from pp where ("pp.data") between :dd1 and :dd2');
query1.Params.ParamByName('dd1').Value := FormatDatetime('mm/dd/yyyy', DateTimePicker1.Date);
query1.Params.ParamByName('dd2').Value := FormatDatetime('mm/dd/yyyy', DateTimePicker2.Date);
query1.Active:=true;
form24.QuickRep1.PreviewModal;
end;
Admin: Пользуемся тегами!

Данные в отчете не отображаются,только шапка
Что не так?где я туплю?

Последний раз редактировалось Admin, 31.05.2010 в 18:01.
Ответить с цитированием
  #2  
Старый 31.05.2010, 18:09
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

кидаем subdetail , на него dbtext
в свойствах subdetail dataset= ваш набор данных
в свойстве quickReport dataset= ваш набор данных
Ответить с цитированием
  #3  
Старый 31.05.2010, 18:13
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Не знаю в каком диалекте SQL принята такая запись полей:
Цитата:
("pp.data")
но вполне возможно, что именно в этом проблема. Поробуйте написать так:
Код:
query1.sql.Add('select * from pp where data between :dd1 and :dd2');
или так:
Код:
query1.sql.Add('select * from pp where [data] between :dd1 and :dd2');
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 31.05.2010, 18:20
katjenina katjenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 4
Репутация: 10
По умолчанию

Спасибо всем большое!
Ответить с цитированием
  #5  
Старый 31.05.2010, 18:31
katjenina katjenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 4
Репутация: 10
По умолчанию

Код исправила
При нажатии на кнопку вылетает ошибка
Invalid use of keyword. Token [data]
Ответить с цитированием
  #6  
Старый 31.05.2010, 18:51
katjenina katjenina вне форума
Прохожий
 
Регистрация: 31.05.2010
Сообщения: 4
Репутация: 10
По умолчанию

если прописываю where [data] выходит ошибка invalid use of keyword,а если where data то ошибка несоответствия типов
Ответить с цитированием
  #7  
Старый 01.06.2010, 09:53
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

а поле data какого типа?
Ответить с цитированием
  #8  
Старый 01.06.2010, 10:36
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вообще, судя по сообщению такое имя для поля использовать нельзя т.к. данное имя является зарезервированным. Может просто переименовать в таблице поле на MyData ? Хотя вполне возможно, что действительно типы данных разные. Судя по запросу предполагается, что это поле и параметры будут типа Date
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 01.06.2010 в 10:39.
Ответить с цитированием
  #9  
Старый 01.06.2010, 10:49
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

в uses Dateutils
+
Код:
query1.Params.ParamByName('dd1').Value := Dateof(FormatDatetime('mm/dd/yyyy', DateTimePicker1.Date));
query1.Params.ParamByName('dd2').Value := Dateof(FormatDatetime('mm/dd/yyyy', DateTimePicker2.Date));

попробуйте так.

еще вариант: в свойствах параметрах компонента query1 пропишите типы.

ПС. возможно ошибаюсь но и с разделителем / могут быть проблемы.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:19.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter