Главная страница
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.031 c
2-1170596520
Max.66RUS
2007-02-04 16:42
2007.02.25
Как присвоить к .ЕХЕ файлу иконку...?


2-1170741914
fisherman
2007-02-06 09:05
2007.02.25
ODBC


15-1169821854
Ученик чародея
2007-01-26 17:30
2007.02.25
Класс TLamer.


2-1170765318
фыфвфы
2007-02-06 15:35
2007.02.25
свойства папки


15-1170389654
Mozart
2007-02-02 07:14
2007.02.25
*.pdf