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

Вниз

Не закрывается DataSet   Найти похожие ветки 

 
Tornado ©   (2007-02-01 15:59) [0]

Использую ADODataSet, подключен к таблице (Access) через ADOConnection. При загрузке программы он программно открывается. В грид загружается таблица, все нормально. При попытке закрыть его (ADODataSet.Activ := False) вылетает ошибка: "Cannot perform this operation on a closed dataset"

Но факт в том что датасет то открыт! Проверял так:

If    DatMod.tbPhone.State = dsInactive Then
 ShowMessage("Open!")   ;
else  
 ShowMessage("Close!");
end;

Показывает Open

Как побороть?


 
Tornado ©   (2007-02-01 16:01) [1]

Тьфу ты перепутал в предыдущем примере, вот так правильно :)

If    DatMod.tbPhone.State = dsInactive Then
ShowMessage("Close!")   ;
else  
ShowMessage("Open!");
end;

Показывает Open


 
Desdechado ©   (2007-02-01 16:05) [2]

проверяй ADODataSet.Active = False


 
Val ©   (2007-02-01 16:06) [3]

раз показывает опен, значит DatMod.tbPhone.State <> dsInactive :) пошаговая проверка отсутствует? ;)


 
sniknik ©   (2007-02-01 16:15) [4]

пофигу хоть 10 раз подряд закрывай... там при установке активности есть проверка (типа if Active <> Value then ...)

глюк происходит от твоих собственных обработчиков какихто событий... либо без всяких событий обращаешься к датасету, выполняешь неверную операцию для закрытого...


 
Anatoly Podgoretsky ©   (2007-02-01 19:56) [5]

> Tornado  (01.02.2007 15:59:00)  [0]

Попробуй поменять местами строчки

ShowMessage("Open!")   ;
ShowMessage("Close!");

Тогда будет правильно работать.


 
ЮЮ ©   (2007-02-03 10:08) [6]


>  При попытке закрыть его (ADODataSet.Activ := False) вылетает
> ошибка: "Cannot perform this operation on a closed dataset

Скорей всего он успешно закрывается, а в каком-то обработчике идет к нему обращение. В этом случае надо не ShowMessage вставлять в код, а в отладчике смотредь в каком месте идет обращение к DataSet-у


> Но факт в том что датасет то открыт! Проверял так:

Открыт в том месте, где ты вставил код. Но ты же его, говоришь закрыл.


 
MsGuns ©   (2007-02-03 14:33) [7]

>Tornado ©   (01.02.07 16:01) [1]
>If    DatMod.tbPhone.State = dsInactive Then

Inactive" в переводе на русский означает утверждение "НЕактивный",
а вовсе не вопрос "Активный ли ?"

Читайте хотя бы словари прежде чем задавать вопросы



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1170296895
Дом
2007-02-01 05:28
2007.02.25
Нет ли какого нибудь устройства, чтоб подключать к компу и управл


2-1170688298
daser
2007-02-05 18:11
2007.02.25
Как отловить движение курсора по записям в гриде?


15-1170314724
=Teddy=
2007-02-01 10:25
2007.02.25
Откуда скачать Indy 10 для Delphi 5 !!!


11-1149511993
shalex
2006-06-05 16:53
2007.02.25
Как изменить свойства ListBox в run time?


6-1158428475
kernel
2006-09-16 21:41
2007.02.25
Console&amp;Socket