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

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

вылезает ошибка про отсутст. mdx файла [D5, dBase, FoxPro]


serjufa ©   (2005-07-29 13:58:00) 

у меня появилось 2 вопроса.

1.Сначала цитата  
[флажок Stop on Delphi Exceptions. Когда данная опция включена, отладчик приостанавливает выполнение программы при возбуждении исключения. Если же она выключена, исключения VCL обрабатываются обычным образом — отображается панель с сообщением, информирующим пользователя о характере нарушения, совершенного его программой.

Когда опция Stop on Delphi Exceptions включена, отладчик делает остановку при исключениях даже в том случае, когда исключение обрабатывается вашей программой. Если вы не хотите, чтобы отладчик останавливал программу при любом исключении, выключите данную опцию.
]

Можно ли программно временно отключить описанное выше

2. Открываю сторонние dbf. К одной из них "забыли" приложить мультииндекс-й файл. Поэтому вылезает ошибка и останавливает программу. Никак не могу побороть эту проблему

{$WARNINGS OFF} //Отключить вывод предупреждений.

   try
     Active := True; //здесь вылезает ошибка про отсутст. mdx файла
   except
     // при неудаче
     MDX_Error(TableName);
     Active := True;
   end;


Приведу текст "лечения" dbf

// ************************************************************************ ****
function  MDX_Error( TableName :string)  : boolean;
var
 my_handle: integer;
 buf: byte;
begin
   buf:=$00;
   my_handle:=FileOpen(W_zapros.tbl_Source.TableName,$0001);
{$I-}
   if (FileSeek(my_handle,28,1)<>-1) then
    begin
    FileWrite(my_handle,buf,1);
    FileClose(my_handle);
    W_zapros.tbl_Source.Open;
    end;
{$I+}
end;


Reindeer Moss Eater   (2005-07-29 14:19:00) [1]

function  MDX_Error( TableName:string)  : boolean;
var
my_handle: integer;
buf: byte;
begin
  buf:=$00;
  my_handle:=FileOpen( W_zapros.tbl_Source.TableName,$0001);
{$I-}
  if (FileSeek(my_handle,28,1)<>-1) then
   begin
   FileWrite(my_handle,buf,1);
   FileClose(my_handle);
   W_zapros.tbl_Source.Open;
   end;
{$I+}
end;

Функция просто блеск.


Reindeer Moss Eater   (2005-07-29 14:17:00) [2]

except
// при неудаче
MDX_Error(TableName);
Active := True;
end;

А если исключение совершенно не связано с отсутствием индекса?
А ты безусловно вызываешь MDX_Error в котором правишь заголовок.


Наверх

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