Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];

Вниз

Access Violation in ibXpress63.bpl   Найти похожие ветки 

 
Drowsy ©   (2014-10-30 22:46) [0]

Возникает при уничтожении модуля данных.
Посмотрел по адресу ошибки в CPU, при уничтожении объекта типа TIBUpdateSQL.



type
 TdmMain = class(TDataModule)
....................
   qrDryBarCalc: TIBQuery;
   uoDryBarCalc: TIBUpdateSQL;
....................
end;

implementation

procedure TdmMain.DataModuleDestroy(Sender: TObject);
begin
а если так, то ошибки нет
 qrDryBarCalc.UpdateObject := nil;
end;


В чём причина такой странности? (причём, на модуле несколько пар TIBQuery-TIBUpdateSQL, но остальные нормально уничтожаются.)


 
Rouse_ ©   (2014-10-30 23:12) [1]


> qrDryBarCalc.UpdateObject := nil;

Этим ты нивелировал генерацию исключения, при вызове деструктора уже разрушенного ранее объекта. Только и всего.
Ошибка не здесь, а выше по коду.


 
Rouse_ ©   (2014-10-30 23:16) [2]

Пардон, не выше - а ниже, по коду исполнения, ибо qrDryBarCalc.UpdateObject ранее был уже разрушен. Ищи второй вызов Free над разрушенным экземпляром UpdateObject  или обращение к полям этого обьекта.


 
Drowsy ©   (2014-10-31 00:30) [3]

procedure TdmMain.DataModuleDestroy(Sender: TObject);
begin
а если так, то ошибки нет
qrDryBarCalc.UpdateObject := nil;
end;
Вот я ставлю точку останова здесь на end;
Нажимаю F7, и сразу возникает исключение.
Т.е., при уничтожении модуля данных.
Как я понимаю, происходит уничтожение uoDryBarCalc: TIBUpdateSQL;
но ссылка на него у объекта qrDryBarCalc (qrDryBarCalc.UpdateObject) не обнуляется почему - то (это же вроде должна делать процедура  FreeNotificаtion). Поэтому, происходит повторная попытка уничтожить uoDryBarCalc.
А если их разделить( qrDryBarCalc.UpdateObject := nil;) , то они  уничтожаются  нормально.


 
Германн ©   (2014-10-31 04:03) [4]

А зачем ты пишешь свой обработчик TDataModule.OnDestroy?


 
Inovet ©   (2014-10-31 04:31) [5]

И вообще TIBUpdateSQL - зло. Подробности искать надо, забыл. И TIBQuery туда же. Но! Эту ошибку не они создают, они своими занимаются.


 
Drowsy ©   (2014-10-31 05:02) [6]


> Германн ©   (31.10.14 04:03) [4]

Ошибка то при уничтожении модуля происходит, вот я и пытаюсь перед этим найти,что не так с компонентами внутри..

> Inovet ©   (31.10.14 04:31) [5]

а я , напротив, где-то в сети статью читал, что TibDataSet - плохо, а надо использовать связку TIBQuery - TIBUpdateSQL


 
Inovet ©   (2014-10-31 05:48) [7]

> [6] Drowsy ©   (31.10.14 05:02)

Правильно, лучше ходить на костылях, чем на ногах.



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

Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
1-1333197347
lord827
2012-03-31 16:35
2016.07.24
как запретить создание файлов в русской раскладке


15-1442784604
Юрий
2015-09-21 00:30
2016.07.24
С днем рождения ! 21 сентября 2015 понедельник


3-1307795544
Geo
2011-06-11 16:32
2016.07.24
Каскадное обновление связных таблиц Oracle+Delphi


6-1281358726
PonosetcDM
2010-08-09 16:58
2016.07.24
Проблемма зависания IDTCPClient


2-1415683622
Петраррка
2014-11-11 08:27
2016.07.24
Исходник





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