Главная страница
    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.044 c
15-1170264009
Piroxyline
2007-01-31 20:20
2007.02.25
"Назад в будущее"


15-1170252125
Sergey13
2007-01-31 17:02
2007.02.25
Участников интернет-форума судят "за оскорбления властей"


2-1170425664
novill
2007-02-02 17:14
2007.02.25
При показе/скрытии Котроллов с выравниванием alTop сбивается


6-1158240246
progmax
2006-09-14 17:24
2007.02.25
Direct connect через IdMappedPortTCP


2-1170572657
Observer
2007-02-04 10:04
2007.02.25
Asm and Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский