![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка Stack overflow [D7, Paradox]
mmelik © (2009-03-03 18:28:00)Доброго времени суток всем. Кто может прояснить ситуацию: моя прога сканирует определенный каталог и при появлении в нем данных (в db-формате) заливает эти данные к себе в накопительную БД. Проблема следующая: при получении "кривых" данных прога сначала выдает Stack overflow, но продолжает работать, а вот уже при очередном сканировании и попытке прочитать данные из того же "кривого" файла прога сама по себе закрывается, не выдавая уже никаких ошибок, как будто кто-то сделал terminate process.
Есть мысли? Или хотя бы как поймать ошибку (try...except - не ловит, прога на второй попытке вываливается)?
Сергей М. (2009-03-04 00:35:00) [41]
> mmelik © (04.03.09 00:31) [43]
>
> Пароль jIGGAe
Тебе еще и в ножки покланяться надо, чтобы ты пароль соизволил убрать или сразу сообщить ?)
Ну да ладно.
Вввел пароль, открыл таблицу, ничего не случилось - все чин по чину.
Что я делаю не так ?
Сергей М. (2009-03-04 00:32:00) [42]
> Я их не помню
А я помню ? Вот мне делать нечего как вспоминать)
mmelik (2009-03-04 00:31:00) [43]Пароль jIGGAe
mmelik (2009-03-04 00:30:00) [44]Сергей М.-
Есть такой замечательный софт для кассовых систем предприятий общепита, который зовется R-Keeper, а работает этот софт под DOS`ом, а данные о своей работе за день передает по сетке на серверу приложений, который в свою очередь работает на виндовой машине и пишет в db-файлы. Ваш вопрос вполне ожидаемый, но вот ответ на него может дать только разработчик, а разработчик говорит - мы больше не поддерживаем эту версию, купите у нас новую. А бигбоссы новое не покупают, их и эта версия устраивает, а то что в ней раз в полгода глюки бывают (сбойные файлы) им глубоко по барабану. У меня же просто спортивный интерес: как так, поймать ошибку в первый раз, вроде бы нормально ее обработать, а второй раз вывалиться? Ну чудес же не бывает? Вот я к вам тут и пристаю.
Германн (2009-03-04 00:29:00) [45]Либо дай свой пароль, либо "встроенный" парадоксовский. Я их не помню.
Сергей М. (2009-03-04 00:27:00) [46]
> mmelik © (04.03.09 00:20) [37]
Это что за байда ? Пароль почему требует ?
Германн (2009-03-04 00:24:00) [47]
> Anatoly Podgoretsky © (04.03.09 00:08) [32]
>
> > mmelik (03.03.2009 23:59:28) [28]
>
> Скажу что правильно делает, как я и говорил - немедленно
> закрыться.
>
> Но боже мой и тут снова Парадокс.
Парадокс - вечен! Ибо он парадокс. :(
Сергей М. (2009-03-04 00:22:00) [48]
> при появлении в нем данных (в db-формате)
Тоже интересный вопрос - если откуда-то появляются парадоксовые файл, значит их кто-то лепит ? Не с луны же они валятся ?
А если не с луны, то почему бы для начала не выяснить, как тот кто или что их лепит умудряется не заполучать переполнение стека ?
mmelik (2009-03-04 00:20:00) [49]Сергей М. -
Название: RCHECK.DB
Размер: 26 кб
Доступен до: 2009-04-03 01:17:44
Ссылка для скачивания файла: http://ifolder.ru/10849685
Никаких прочих файлов (индексов и тп) у него больше нет.
Сергей М. (2009-03-04 00:17:00) [50]
> mmelik © (04.03.09 00:14) [35]
Давай сюда соотв. настройки БДЕ ..
mmelik (2009-03-04 00:14:00) [51]Сергей М. - сейчас...
Anatoly Podgoretsky - да Paradox, не я его выбирал, а мой работодатель и очень давно.
Медвежонок Пятачок - DBD32.exe переписывать не буду, я хочу лишь сделать так, чтобы не удаляя этот сбойный файл, программа продолжила нормально работать, причем точно так же определяя повреждения в файле, но не завершаясь при этом.
Anatoly Podgoretsky (2009-03-04 00:09:00) [52]> mmelik (04.03.2009 0:04:30) [30]
БДЕ порушено или неверно настроено.
Но пора на нем крест ставить, ну или хотя бы не использовать Парадокс.
Медвежонок Пятачок (2009-03-04 00:08:00) [53]ну допустим найдешь ты причину, дальше то что?
будешь переписывать dbd32.exe?
Сергей М. (2009-03-04 00:08:00) [54]
> mmelik © (04.03.09 00:04) [30]
Почему бы и нет ?
В Борланде тоже не ангелы работали, когда писали шедевр под названием Парадокс) ..
Но пока слабо верится.
Так что жми-кидай на любую шару свой файл (ботву к нему - индексы и пр. - не забудь) и приводи сюда ссылку - будем посмотреть кто чем болен
Anatoly Podgoretsky (2009-03-04 00:08:00) [55]> mmelik (03.03.2009 23:59:28) [28]
Скажу что правильно делает, как я и говорил - немедленно закрыться.
Но боже мой и тут снова Парадокс.
mmelik (2009-03-04 00:04:00) [56]Сергей М. - допустим, вы хотите сказать, что то же самое делает и DBD32.exe?
Сергей М. (2009-03-04 00:02:00) [57]
> вопрос: как мне узнать причину?
Причина проста - необузданная тобой рекурсия.
Файл тут совершенно ни причем, будь он хоть трижды "кривой".
Не знаю насколько тебе это поможет, но ситуация выглядит так: ты вызываешь некий метод некоего объекта, в ходе исполнения которого возбуждается некое событие некоего объекта, в ходе исполнения обработчика которого ты вызываешь тот же метод того же объекта, в ходе исполнения которого возбуждается то же самое некое событие того же самого некоего объекта, в ходе исполнения обработчика которого ты вызываешь тот же метод того же объекта, в ходе исполнения которого .. В трех словах - у попа была собака)..
mmelik (2009-03-03 23:59:00) [58]Господа, я только что попробовал следующий простой запрос в DBD32.exe к этому файлу:
select * from "E:\DELPHI_PROJECTS\MY\MyRTDA\1.1.1.41\DATA\5AVENU\08-12-08\rcheck.db"
Получил следующее:
Unexpected: Stack overflow
После нажатия на Ok - DBD32 закрывается.
Что скажете?
Медвежонок Пятачок (2009-03-03 23:55:00) [59]ты забываешь выйти из рекурсии
Сергей М. (2009-03-03 23:53:00) [60]
> Anatoly Podgoretsky © (03.03.09 23:41) [24]
Да ему по колено)
Переполнение стека ? Ну и хрен с ним, подумаешь невидаль ! Поехали дальше)