Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.31;
Скачать: CL | DM;

Вниз

Код ошибки   Найти похожие ветки 

 
Sectey ©   (2003-03-13 15:15) [0]

У меня есть текст ошибки "Table cannot be opened for exclusive use." как мне узнать его код. Заранее блогодарен за помощь.


 
Dred2k ©   (2003-03-13 15:24) [1]

Код равен $280D. Это исключение типа EDBEngineError (ошибка BDE). Глянь на него хелп и увидишь, что проперть Errors, потом его ErrorCode сделает тебя счастливым.


 
Sectey ©   (2003-03-13 15:31) [2]

>Dred2k
А где ты взял код данного исключения.
Где посмотрел?


 
Dred2k ©   (2003-03-13 15:50) [3]

> А где ты взял код данного исключения.
Я ж говорю - код ты получишь через объект исключения.
Вызов Open надо взять в конструкцию вида:

try
// ...
Table.Exclusive := True;
Table.Open;
// ...
except
on E : Exception do begin
if(E is EDBEngineError) then begin
// тут
end;
end;
end;


Вот как раз в точке "тут" ты можешь получить доступ к свойствам объекта исключения. Приведи его к типу через "E as TDBEngineError" и спокойно работай. Хелп смотрел на этот тип?
ErrorCount - кол-во ошибок BDE, содержащиеся в рамках данного исключения (ошибки BDE в общем случае каскадные). Скорее всего, их количество в данном случае будет равно 1. Свойство Errors - это массив объектов TDBError. У TDBError есть свои свойства - ErrorCode, например (там еще текст, ...). Вот и вся цепочка. Внимательно изучи хелп и будешь рулить ошибками на раз.

> Где посмотрел?
Так в самой BDE. Для спеццелей пришлось однажды вытянуть ВСЕ описания ошибок, возвращаемых BDE. Дело в том, что по коду ошибки (на самом деле все вызовы BDE возвращают код, а не текст - их обработкой занимается VCL, исключение именно так и появляется) не всегда можно получить текст. Это потому, что есть группа ошибок, указывающих на недоступность самого BDE. Так вот их текст получить при этом из BDE невозможно (его же нет!). Вот я и сделал как-то модуль, содержащий массив всех сообщений по кодам (даже прогу написал, что б модуль этот сгенерить ;) ).
Попутно все стало ясно.



Страницы: 1 вся ветка

Текущий архив: 2003.03.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
7-100487
Reals
2003-02-06 17:07
2003.03.31
Как защитить свою программу от закрытия


3-100143
pa\/el
2003-03-12 10:17
2003.03.31
Экзотическая БД


6-100361
greenrul
2003-02-06 18:15
2003.03.31
Список internet-соединений.


1-100230
hawkins
2003-03-20 10:33
2003.03.31
Как сделать обработчик события OnMouseMove у компонента QuickRep?


14-100380
aga
2003-03-11 15:43
2003.03.31
WriteBinaryData