Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
1-100285
OlegM
2003-03-18 13:52
2003.03.31
case и string


1-100235
and_sp
2003-03-18 12:11
2003.03.31
Сравнение каталогов


6-100357
Cosmic
2003-02-03 08:39
2003.03.31
Как отключить компьютер от сети?


1-100212
VaS
2003-03-20 10:47
2003.03.31
Сохранение свойств вложенных компонентов


3-100174
stone
2003-03-13 10:58
2003.03.31
TADOCommand.States




   Наверх