| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| А ни у кого такой фигни или похожего чего небыло? Если было - расскажите плз. Может у меня мысль какая мелькнёт - может даже умная Просто наврядли получится занять на достаточное время машину клиента для обрезаний. А делать это нужно только там на месте. Добавлено @ 13:09 Ещё один - думаю важный - момент: этот глюк проявляется только по мере заполнения бд! А контролы с этим никак не связаны. Я сразу начал грешить на jet - всё установлено с дисков за 12 грн Переустановил 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 | ||
Невозможно. Если до resume возникнет еще error - приложение свалится по double fault. |