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

Вниз

Исключение при выходе их программы.   Найти похожие ветки 

 
EugenePichugin   (2004-02-09 10:15) [0]

На форме есть компонент ADOConnection настроенный на базу Oracle.
Если он не активен то форма запускается и закрывается нормально. Если же его открыть, то все запросы работают нормально, но при закрытии формы возникает исключение, причем закономерность четкая :
если соединение было открыто (даже потом закрыто), то исключение при закрытии формы
если нет - то все нормально

Если кто сталкивался - подскажите что делать?

может дело в ADO провайдере
у меня выставлен ADO provider для Oracle, может попробовать через ODBC ???

Спасибо.


 
sniknik ©   (2004-02-09 10:43) [1]

> может дело в ADO провайдере
нет, дело явно в 17-й строке.


 
EugenePichugin   (2004-02-09 10:45) [2]

пробовал создавать и удалять соединенние динамически
ошибка врзникает именно при вызове метода Destroy

MyCon := TADOConnection.Create(Self);
MyCon.ConnectionString := "Provider=MSDASQL.1;Password=pas;Persist Security Info=True;User ID=us1;Data Source=vbase";
MyCon.Connected := True;

MyCon.Connected := False;
MyCon.Destroy; // ошибка


что делать.... ?


 
sniknik ©   (2004-02-09 11:01) [3]

читай хелп
Description

Do not call Destroy directly in an application. Instead, call Free. Free verifies that the ADO connection is not nil, and only then calls Destroy.

Destroy performs the following tasks:

Closes the connection.

Destroys its list of associated datasets.
Checks for unprocessed connection events.
Destroys its connection interface.
Calls the inherited destructor.

(но это не значит что нет еще другой ошибки, вообще сообщение что там выдается прамо указывает на тип глюка попробуй еще и его прочитать)


 
EugenePichugin   (2004-02-09 11:12) [4]

Хрень вообще интересная происходит

Destroy и Free тут не причем.

Исключение возникает только в IDE

при запуске из вне - ничего не происходит...


 
Vlad ©   (2004-02-09 11:17) [5]


> EugenePichugin (09.02.04 11:12) [4]

приведи сообщение об ошибке


 
EugenePichugin   (2004-02-09 11:22) [6]

выскакивает отладчик

а потом сообщение
project foulted with message
access violation at ... read address ...

вот так


 
sniknik ©   (2004-02-09 11:51) [7]

> access violation at ... read address ...
скорее всего происходит при обращении к несозданому или уже уже уничтоженному обьекту. (если у тебя практика Destroy везде использовать то не удивительно)

кстати еще одно заметил что может привести к глюку (и это только в 4 показанных строчках ;о)

MyCon := TADOConnection.Create( Self);
раз сам его удаляеш ставь nil.


 
EugenePichugin   (2004-02-09 11:53) [8]

Да суть вообще не в этом
это я написал чтоб проверить где глючит
вообще то - статический компонент на форме
я не destroy ни free не пишу

просто сам факт появления отладчика - странно


 
Vlad ©   (2004-02-09 12:05) [9]


> EugenePichugin (09.02.04 11:53) [8]

Убей компонент с формы, сохрани проект, затем снова добавь компонент


 
EugenePichugin   (2004-02-09 12:31) [10]

проверял
нифига


 
sniknik ©   (2004-02-09 13:00) [11]

хочеш сказать что в проверке только показаные строчки участвуют? т.е. ни таблиц не подключаеш ни событий в них не прописываеш... только то что показано, на чистой форме, не на MDIChild а на нормальной, и закрываеш именно эту форму а не приложение предварительно не закрыв Child-а?

тогда действительно странно.



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

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

Наверх




Память: 0.49 MB
Время: 0.018 c
1-12444
SergP
2004-02-22 12:07
2004.03.05
TToolBar. Как привести его в


7-12544
barmaley2000
2003-12-12 13:29
2004.03.05
Список процессов и информация о системе


14-12521
nv-vetal
2004-02-12 15:57
2004.03.05
Как вытянуть из dpk файлы pas програмно?


3-12283
LaidBack
2004-02-10 08:05
2004.03.05
Как получить список схем БД Oracle?


3-12259
sohat
2004-02-09 10:44
2004.03.05
TClientDataSet. Как редактировать