Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];
ВнизНе закрывается 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c