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

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

Проблема с ADODataSet [D6, Sybase]


Yakudza ©   (2004-08-28 13:03:00) 

Подскажите в чем может быть проблеме, когда 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;


sniknik   (2004-08-30 08:38:00) [1]

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

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


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

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


KSergey   (2004-08-29 12:52:00) [3]

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


DiamondShark   (2004-08-29 10:47:00) [4]

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


Yakudza   (2004-08-29 01:43:00) [5]

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


Yakudza   (2004-08-28 13:33:00) [6]

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


Yakudza   (2004-08-28 13:32:00) [7]

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


Nikolay M.   (2004-08-28 13:21:00) [8]


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

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

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

?


Yakudza   (2004-08-28 13:14:00) [9]

Обьясни.


Nikolay M.   (2004-08-28 13:08:00) [10]


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

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


Наверх

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