Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка Access Violation, При выходе из программы вылетает ошибка 
:(
    Опции темы
demcoder
Дата 28.11.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.11.2008

Репутация: нет
Всего: нет



Всем доброго времени суток. 

Народ подскажите, может кто сталкивался, есть проект писаный на Delphi 7, БД Paradox, переодически выскакиевает глюк: компилируеш проект, запускается главная форма, тут же вышожу из нее (т.е. закрываю программу), выскакивает Access Violation ... . Причем иногда вылазиет а иногда нет. в чем может быть причина, ни как не могу поймать что вызывает эту ошибку. 
PM MAIL   Вверх
Bose
Дата 28.11.2008, 16:57 (ссылка) |   (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Это очень распространённая ошибка. Причиной обычно является неверный код в 17 или 18 строке. smile 
PM MAIL WWW Skype   Вверх
pseud
Дата 28.11.2008, 17:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



demcoder, возможно в детсрукторе чего-то отключаешь/убиваешь что не включено/рождено.
если кода не много - код в студию

Bose, +


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Akella
Дата 28.11.2008, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Определённо в 17!

Добавлено через 37 секунд
Да, и не вздумай пользоваться дебаггером!
PM MAIL   Вверх
demcoder
Дата 1.12.2008, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.11.2008

Репутация: нет
Всего: нет



Цитата(pseud @ 28.11.2008,  17:31)
demcoder, возможно в детсрукторе чего-то отключаешь/убиваешь что не включено/рождено.
если кода не много - код в студию

Bose, +

Ковырялся в деструкторах форм, в событиях типа OnClose ..., ни чего там сверхестественного не наше, вроде все ровно. К сожелению код очень большой, там порядра 20 форм,  и база около 30 таблиц, так что выложил бы да незнаю что вылаживать. Где еше глянуть, в чем может быть косяк? 
База месяца три работала нормально, потом туда внесли некоторые изменения, добавилось еще 3 таблички, формы ввода данных, кое-какой расчет, Эти три таблички соответствуют, 3 разделам в программе, 2 из них абсолютно идентичны, но принято было решения все-таки не обьединять их один (так мол будет удобней пользователю). Так вот после того как один раздел был готов , прога продолжала работать в норме, после того как второй был готов стала опять появляться эта ошибка. в коде все одинаково, только имена таблиц разные.
Причем, у пользователей БД один и тот же энкземпляр exe-шника, у одних это глюк есть у других все ровно
PM MAIL   Вверх
Bose
Дата 1.12.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(demcoder @  1.12.2008,  14:46 Найти цитируемый пост)
Ковырялся в деструкторах форм, в событиях типа OnClose ..., ни чего там сверхестественного не наше, вроде все ровно. К сожелению код очень большой, там порядра 20 форм,  и база около 30 таблиц, так что выложил бы да незнаю что вылаживать. Где еше глянуть, в чем может быть косяк? 

Попробуй перед завершением программы, вручную освободить все созданные формы и классы.  Это поможет локализовать источник проблемы.
PM MAIL WWW Skype   Вверх
pseud
Дата 1.12.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(demcoder @  1.12.2008,  14:46 Найти цитируемый пост)
Ковырялся в деструкторах форм, в событиях типа OnClose ..., ни чего там сверхестественного не наше, вроде все ровно. К сожелению код очень большой, там порядра 20 форм,  и база около 30 таблиц, так что выложил бы да незнаю что вылаживать. Где еше глянуть, в чем может быть косяк? База месяца три работала нормально, потом туда внесли некоторые изменения, добавилось еще 3 таблички, формы ввода данных, кое-какой расчет, Эти три таблички соответствуют, 3 разделам в программе, 2 из них абсолютно идентичны, но принято было решения все-таки не обьединять их один (так мол будет удобней пользователю). Так вот после того как один раздел был готов , прога продолжала работать в норме, после того как второй был готов стала опять появляться эта ошибка. в коде все одинаково, только имена таблиц разные.Причем, у пользователей БД один и тот же энкземпляр exe-шника, у одних это глюк есть у других все ровно


одинаковые формы, одинаковые таблицы, там работает, там не работает.
вариантов можно навыдумывать много. но боюсь бестолку.
надо видеть код.


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Exai1e
Дата 1.12.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 908
Регистрация: 3.12.2006
Где: Moscow

Репутация: нет
Всего: 30



попробуй метод исключения smile целые процедуры запихивай в try except, в экзепте пиши в лог, название процедуры например. в итоге места для поиска ошибки должены сократиться. Или закоминтируй отдельные участки кода, если ошибки не будет - значит в них и т.д., тоесть попробывать ее выловить так. или используй какойнить профайлер (или как он там называется, который показывает утечки памяти и т.д.)


--------------------
"Решение зависит от выбранного геморроя" © Snowy
"у нас как в армии - либо работает, либо так и задумано"
PM MAIL ICQ   Вверх
bems
Дата 1.12.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: нет
Всего: 88



Цитата(pseud @  1.12.2008,  19:26 Найти цитируемый пост)
одинаковые формы, одинаковые таблицы, там работает, там не работает.
вариантов можно навыдумывать много. но боюсь бестолку
некоторые из вариантов более логичные чем другие.
например код:
Код

GlobalObjectReference:=TGeniusClass.Create;//в OnCreate формы
//...
GlobalObjectReference.Free//в OnDestroy формы

где GlobalObjectReference доступна обоим "частям" программы станет нерабочим только после появления второй части.

Добавлено через 4 минуты и 34 секунды
Цитата(demcoder @  1.12.2008,  14:46 Найти цитируемый пост)
К сожелению код очень большой, там порядра 20 форм,  и база около 30 таблиц, так что выложил бы да незнаю что вылаживать. 
вылАживыай два абсолютно идентичные куска



--------------------
Обижено школьников: 8
PM MAIL   Вверх
MetalFan
Дата 1.12.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



жестокий, неправильный и топорный, но действенный способ - TerminateProcess на самого себя - и никаких AV.
p.s. лучше конечно так не делать, а найти и устранить причину возникновения ошибки


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
demcoder
Дата 15.12.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 26.11.2008

Репутация: нет
Всего: нет



всем спасибо за советы! Проблема была в том что при закрытии формы оставался активным SumList  в DBGridEh. После того как я программно деактивировал SumList в гридах, при закрытии формы , ошибка исчезла. 

 smile 
PM MAIL   Вверх
Bose
Дата 15.12.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(demcoder @  15.12.2008,  16:02 Найти цитируемый пост)
Проблема была в том что при закрытии формы оставался активным SumList  в DBGridEh. После того как я программно деактивировал SumList в гридах, при закрытии формы , ошибка исчезла. 

Я как-то тоже сталкивался с этим. 
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.