Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Проблема с ADODataSet   Найти похожие ветки 

 
Yakudza ©   (2004-08-28 13:03) [0]

Подскажите в чем может быть проблеме, когда dset.Close; закрываеться MainDataSet !

procedure MainDataSetAfterScroll(DataSet: TDataSet);
var
 dset : TADODataSet;
begin
 if dset = nil then
 begin
   dset.Create(self);
 end;

 dset.Close;
 dset.CommandType := cmdText;
 dset.CommandText := "SELECT id FROM table WHERE eid = :ID";
 dset.Parameters.Items[0].Value := MainDataSet.FieldByName("id").AsInteger;
 try
   dset.Open;
 except
   //
 end;
end;


 
Nikolay M. ©   (2004-08-28 13:08) [1]


>  if dset = nil then
>  begin
>    dset.Create(self);
>  end;

Ты хоть понял сам, что тут написал? Или специально моделируешь непредсказуемое поведение программы и AV?


 
Yakudza ©   (2004-08-28 13:14) [2]

Обьясни.


 
Nikolay M. ©   (2004-08-28 13:21) [3]


>  if dset = nil then
>  begin
>    dset.Create(self);
>  end;

Тебе не кажется, что это аналогично следующему:

if dset = nil then
 nil.Create(self);

?


 
Yakudza ©   (2004-08-28 13:32) [4]

А как проверить создали уже обьект или нет ?


 
Yakudza ©   (2004-08-28 13:33) [5]

Вот что еще не понятно если делать dset.Create(self); то ругаеться что MainDataSet уже есть но почему не ругаеться что dset уже есть ?


 
Yakudza ©   (2004-08-29 01:43) [6]

Кто-нибуть обьясните где непонятка, а то так и помру неучем.


 
DiamondShark ©   (2004-08-29 10:47) [7]

Давай так. Ты забываешь про весь свой код и описываешь ПО-РУССКИ чего ты хочешь получить.


 
KSergey ©   (2004-08-29 12:52) [8]

Вообще-то, [7] DiamondShark как всегда прав, однако чтобы больше такого не писать  - настоятельно советую прочитать
http://www.delphikingdom.com/helloworld/runtime_comp.htm


 
Yakudza ©   (2004-08-30 00:21) [9]

Хочу сделать следующее:
В событии AfterScroll "главного" датасета (dsMain : TADODataSet) хочу, при некоторых условиях, создать, если еще не сорздан еще один датасет, сделать запрос, показать его и т.д.


 
sniknik ©   (2004-08-30 08:38) [10]

> при некоторых условиях, создать, если еще не сорздан еще один датасет, сделать запрос, показать его и т.д.
dset у тебя локальная переменная она в любом случае не создана. (есть конечно оговорка, раз уж это не просто переменная а рекордсет, он еще к колекции конекта прописывается, но переменная то тут не причем так проверять нельзя нужно в той колекции и искать)

а делается это обычно так
dset:= TADODataSet.Create(self);
try
 //код,... показать его и т.д.
finally
 dset.free;
end
(если нужно оставить рекордсет после процедуры то уж не делай его локальным)



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
4-1092224998
JJJ
2004-08-11 15:49
2004.09.26
Изменение цвета компонентов созданных на WinAPI


6-1089100429
Сергей2004
2004-07-06 11:53
2004.09.26
Размеры страницы в TWebBrowser


1-1095010381
QuasiLamo
2004-09-12 21:33
2004.09.26
Передача фокуса элементу управления модального окна


1-1094722992
vint45
2004-09-09 13:43
2004.09.26
Закрытие Excel из своей программы


1-1095149865
}|{yk
2004-09-14 12:17
2004.09.26
Глюк с Excel и Win98