Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка Stack overflow [D7, Paradox]


Страницы:   1 2 3 4 5

mmelik ©   (2009-03-03 18:28:00) 

Доброго времени суток всем. Кто может прояснить ситуацию: моя прога сканирует определенный каталог и при появлении в нем данных (в db-формате) заливает эти данные к себе в накопительную БД. Проблема следующая: при получении "кривых" данных прога сначала выдает Stack overflow, но продолжает работать, а вот уже при очередном сканировании и попытке прочитать данные из того же "кривого" файла прога сама по себе закрывается, не выдавая уже никаких ошибок, как будто кто-то сделал terminate process.
Есть мысли? Или хотя бы как поймать ошибку (try...except - не ловит, прога на второй попытке вываливается)?


mmelik   (2009-03-03 20:18:00) [81]

Пожалуйста, вот код:

   {Определяем путь к словарю-смены}
   sPath:= ExtractFilePath(Application.ExeName)+'DATA\'+ABBR+'\'+EndDay+'\'+lstENDDAYData.Items[n]+'.db';

   {Считываем записи словаря-смены}
   dt.sqlActionEndDay.Active:= false;
   dt.sqlActionEndDay.SQL.Clear;
   dt.sqlActionEndDay.DatabaseName:= ExtractFilePath(sPath);
   dt.sqlActionEndDay.SQL.Add('select * ');
   dt.sqlActionEndDay.SQL.Add('from "'+sPath+'" ');
   try
     dt.sqlActionEndDay.Active:= true;
   except
     dt.sqlInfo.Active:= false;
     dt.sqlActionEndDay.Active:= false;
     AddToErrorsLog(dt.sqlActionEndDay.SQL.Text,true);
     AddToErrorsLog(PChar(Exception(ExceptObject).Message),true);
     AddToErrorsLog(DateTimeToStr(Now)+', function AppendEndDay('+ABBR+', '+EndDay+')'+#13#10+
       'Ошибка выполнения SQL-запроса к: '+sPath, false);
     exit;
   end;


Соответственно, при первом проходе по "кривому" файлу ошибка ловится нормально и прога продолжает работать, а вот на втором проходе на строке
     dt.sqlActionEndDay.Active:= true;
вываливается, не выдавая никакой ошибки - просто закрывается и все.


Сергей М.   (2009-03-03 19:56:00) [82]


> try...except - не ловит


Врешь, причем нагло)


фыва   (2009-03-03 19:53:00) [83]

а где код?


mmelik   (2009-03-03 19:46:00) [84]

либо неверная структура либо порченый файл. Как бы там ни было это делает сам BDE, я лишь отлавливаю ошибку и пишу ее в лог.


Desdechado   (2009-03-03 19:04:00) [85]


> при получении "кривых" данных

Как ты это определяешь? Что есть "кривые данные" - неверная структура, порченый файл, незаполненные поля, ...?


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо