Форум: "Базы";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];
ВнизИсключение при выходе их программы. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c