Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > работаем под средой - виснем в exe


Автор: kulibin 24.9.2005, 10:22
Столкнулся со странным явлением. На одной клиентской машине моя программа ловит странный глюк. Начну по порядку.
Когда дб пустая - программа запускается. Когда данных совсем не много - тоже всё ок. Когда чуть больше - программа виснет на заставке. Даже не виснет - просто стоит заставка и в диспетчере задач видно что оно что-то сосредеточенно делает. Я сначала решил что она вошла в бесконечный цикл. Притащил свой жесткий диск, установил среду разработки. Запускаю программу под средой - всё ок! Тут же компилирую - и та же песня.
Такого ещё не видел.
Как я понял так программа ведёт себя не на любой машине.
Мне кажется что это может быть из-за шаровых контролов. Хотя - везде они чесно работают. А может jet? тоже странно. Теряюсь в догадках.
Ну и краткое описание того, что было использовано в программе: дб Аксес через оледб, ини через апи, шаровые контролы - инновартис фреймплюс, напаран баттон. Ну и в изобилии мсфлексгрид. Ну и мой туповатый контрольчик - чекбокс в виде флет-кнопки с рисунком слева - вышлю кому интересно(наверное есть вероятность что из-за него?).
Помогите плз. Я в полном отчаянии. С таким ещё не приходилось сталкиваться.

Автор: Exception 24.9.2005, 10:50
скопируй проект и начинай в копии убирать функции (начни с контролов) + компилируй. когда трабл пропадёт, поймёшь в чём проблема.
а лучше выложи сорсы проги (zip) с отдельным кодом для создания бд и её забивания всяким бредом - чтобы в зипе бд не таскать

Автор: kulibin 24.9.2005, 12:35
Ещё - чуть не забыл - использую контролы мбтрей, мблинк, мбскрол
И апишные заменители виндовских коммонконтролов апитриваев, апикомондиалог и апидейттаймпикер
вроде всё

Автор: Gannibal 24.9.2005, 12:40
я полностю согласен с Run-time error проще будет постепенно произвести отладку, исключением тех или иных компонент

просто сказать в чём ошибка невозможно

Автор: kulibin 24.9.2005, 12:47
Спасибо Run-time error. Дельный совет про удаление. Только тяжеловато будет это воплотить - в плане орг.вопросов. Но наверное это единственный верный способ - и надёжный.
А про исходники я не сильно понял.
Добавлено @ 12:52
А про создание бд из кода - както ни разу не пользовался. Да и бд то пустая весит наверное столько же, как и ADOX. А создать бд можно наверное только так. Править структуру - достаточно только адо. Короче - проще таскать пустую бд - мне по крайней мере.
Добавлено @ 12:55
Блин - но странность в том, что у меня и у других клиентов всё ок! Почему у него глюки? Настройки какие то оригинальные? Наверное только это. Если бы нехватало чего то - вообще бы не запускалась. Или слетала. А работает то. Не виснет даже. Только что делает она в это время - история умалчивает. Но проц пригружает нормально - 80-90%. Оперативки почти не кушает.

Автор: kulibin 24.9.2005, 13:01
А ни у кого такой фигни или похожего чего небыло?
Если было - расскажите плз. Может у меня мысль какая мелькнёт - может даже умная smile
Просто наврядли получится занять на достаточное время машину клиента для обрезаний. А делать это нужно только там на месте.
Добавлено @ 13:09
Ещё один - думаю важный - момент: этот глюк проявляется только по мере заполнения бд!
А контролы с этим никак не связаны.
Я сразу начал грешить на jet - всё установлено с дисков за 12 грн smile - так и работает.
Переустановил jet. Токо бестолку.
Хотя есть одна мысль. Может это и правда из-за этого. Просто у меня не более новая установка jet - и его глюкавый не заменяется. Надо будет качнуть последнее обновление и попробовать переустановить. Может и поможет.

Кто за то что это может помочь?

Автор: cardinal 24.9.2005, 15:42
1. Проверь кол-во свободного места на винте.
2. Сколько памяти у машины?
3. Может виндовоз староват.
4. Может с сетью проблемы (права доступа), если бд на сервере.

Ну короче много чего может быть, но думаю имеено такого плана...

Автор: Exception 24.9.2005, 16:16
сделай как я тебе говорил в асе, а именно:
убери все on error
добавь нотификации о прохождении участка кода каждые 5 строк

Автор: kulibin 24.9.2005, 22:48
Всем спасибо.
Расскажу когда попробую побороть эту хрень.

Автор: Akina 24.9.2005, 23:16
И все-таки попробуй если не отсеять контролы (это долго, слишком много согласований), то набить по коду почаще записи в файл лога о прохождении контрольной точки - причем обязательно открыть файл-записАть-закрыть. Потому как симптоматика сильно похожа на косяк в драйверах работы с базой (открытие-чтение-еще какая операция подвисает) - найти МЕСТО где застывает приложение.

Автор: Exception 25.9.2005, 02:04
возможно дело в бесконечном цикле on error goto..

Автор: Akina 25.9.2005, 23:54
Цитата(Run @ 25.9.2005, 03:04)
возможно дело в бесконечном цикле on error goto..

Невозможно. Если до resume возникнет еще error - приложение свалится по double fault.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)