Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADODataSet + параметры, Приходится переоткрывать ADOConnection 
:(
    Опции темы
Akella
  Дата 8.7.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Даже не знаю, как бы правильно тему обозвать.
Есть код, который отображает данные в грид из базы MS SQL 2005
Код

procedure TForm4.ToolButton1Click(Sender: TObject);
begin
  case cxPageControl1.ActivePageIndex of
   0: UpdateDS(ADODataSet1);
   1: UpdateDS(ADODataSet2);
   2: UpdateDS(ADODataSet3);
  end;
end;

procedure TForm4.UpdateDS(AD1: TADODataSet);
begin
  if not ADOConnection1.Connected then
    ADOConnection1.Connected := true;

  AD1.Close;
  AD1.Parameters.ParamByName('dtFrom').Value  := cxDtFrom.EditValue; // данные здесь не меняю
  AD1.Parameters.ParamByName('dtTo').Value    := cxDtTo.EditValue; // данные здесь не меняю
  AD1.open;
end;


cxDtFrom и cxDtT - это TcxDateEdit

Нажимаю на ToolButton1 данные есть в гриде. Нажимаю второй раз - грид пустой.
На данный момент 2 набора (AdoDataSet+Datasource+cxGrid).


Вот запрос одного из НД. Структура таблиц одинаковая, отличается лишь одим символом в названии таблиц
ME_1_3_CNT_I
ME_1_1_CNT_I

и
ME_1_3_COUNTERS
ME_1_1_COUNTERS


Код

SELECT me11.moment, c.marking,  me11.counted, me11.counter_id, c.location FROM dbo.ME_1_1_CNT_I me11

left join dbo.ME_1_1_COUNTERS c on (c.identno = me11.counter_id)

where
c.marking not like '%DDP%' and
c.marking <> 'RPK' and
UPPER(c.marking) not like '%REJECT%' and

moment >= :dtFrom and
moment <= :dtTo and

c.defect_id = 0
order by c.locale



Если заменяю работу с параметрами на прямую подстановку дат, то всё работает нормально:
Код

moment >= '08.07.2009 07:00:00' and
moment <= '08.07.2009 15:00:00' and


В дебагере смотрел, что передаётся в качестве дат - всё правильно передаётся. Ну первое же открытие набора данных без проблем срабатывает.
Это что, глюк?

Забыл дописать. D2007 с обновлениями.

Это сообщение отредактировал(а) Akella - 8.7.2009, 15:09
PM MAIL   Вверх
Akella
  Дата 8.7.2009, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Если код процедуры заменить на такой
Код

  AD1.Close;
  ADOConnection1.Connected := false;

  AD1.Parameters.ParamByName('dtFrom').Value  := cxDtFrom.EditValue;
  AD1.Parameters.ParamByName('dtTo').Value    := cxDtTo.EditValue;

  ADOConnection1.Connected := true;
  AD1.open;


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

Запрещено:

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

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


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

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

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


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

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


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

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


 




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


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

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