Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
3-1163132410
don-do
2006-11-10 07:20
2007.02.25
MSSQL компоненты прямого доступа


2-1170273176
valwin
2007-01-31 22:52
2007.02.25
Отрисовка маленького примитива на канве с учётом угла поворота!


4-1160852339
Ром
2006-10-14 22:58
2007.02.25
Запрет локального входа пользователя в систему


2-1170411714
DevilDevil
2007-02-02 13:21
2007.02.25
Project/Options/Compiler/ RANGE CHECKING


15-1170374311
hmmm
2007-02-02 02:58
2007.02.25
PHPMyAdmin





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский