Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизЕще раз о BDE Найти похожие ветки
← →
Дмитрий К.К. (2003-03-18 06:29) [0]Вопрос к MsGuns, А.П. и другим специалистам по BDE.
Как известно даже начинающему, разрабатывающему приложения для работы с БД, если программа использует BDE, то и на любой другой станции, на которой будет запущена эта программа, тоже должен быть установлен BDE. В противном случае выскочит ошибка 2104 (сообщение о том, что BDE неинициализирован).
Вопрос в другом. Как опередить это сообщение и выдать свое собственное (вроде "Установите предварительно BDE")?
← →
ЮЮ (2003-03-18 07:11) [1]2)в try ... exept выполнить какую-либо API-функцию БДЕ, например динамически создать алиас
← →
Виталий Панасенко (2003-03-18 08:38) [2]Или в том же try ... except попытатся открыть таблицу или подключиться к БД.
← →
ЮЮ (2003-03-18 08:46) [3]> открыть таблицу или подключиться к БД.
Ошибка возможна из-за таблиц, а не BDE
← →
Reindeer Moss Eater (2003-03-18 08:46) [4]>Виталий Панасенко
Можно подумать, что если не подключаться к БД, то и исключения не не будет.
← →
Kuusiniemi (2003-03-18 10:08) [5]Ээээ... не надо извращаться, господа. Есть такая функция dbiInit называется. Если верить F1, то она вернет DBIERR_NONE, если The BDE environment was initialized successfully.
← →
MsGuns (2003-03-18 10:40) [6]Есть класс EDBEngineError, св-во которого Errors содержит объект TDBError, в котором в виде стэка хранятся все ошибки доступа
У этого же класса есть методы, один из которых, Exception, и позволяет самаму "инициировать" нужную ошибку.
← →
Reindeer Moss Eater (2003-03-18 11:39) [7]EDBEngineError генерится из недр БДЕ.
Нет на машине БДЕ - некому будет генерить EDBEngineError.
← →
MsGuns (2003-03-18 12:03) [8]>Reindeer Moss Eater (18.03.03 11:39)
>EDBEngineError генерится из недр БДЕ.
Генерится его значение, а как класс он "генерится" в приложении.
Так вот, сам объект TDBError имеет св-ва Category, SubCode и ErrorCode (Category + SubCode). Все эти ошибки определены как глобальные константы. В частности, в Category=SYSTEM есть
ERRCODE_DBIERR_NOCONFIGFILE ($2104) - нет BDE
ERRCODE_DBIERR_CANTFINDIDAPI ($2108) - не найден IDAPI.dll
← →
Дмитрий К.К. (2003-03-19 08:12) [9]К сожалению, не могу проверить свой код, на моей машине установлен BDE, а сносить его (даже временно) пока не имею возможности.
Я помню, что приложение, использующее TTable, но не открывающее его, ошибку инициализации BDE выдавать не будет.
Вот этот мой код точен?
procedure TForm1.FormCreate(Sender: TObject);
begin
try
Table1.Open;
except
on EDBEngineError do ShowMessage("Нетуть BDE!");
end;
end;
← →
Anatoly Podgoretsky (2003-03-19 15:06) [10]Сносить не надо, переименуй временно папку с БДЕ
← →
MsGuns (2003-03-19 15:18) [11]>Дмитрий К.К. © (19.03.03 08:12)
Точен так же как диагноз терапевта:
- Что-то у вас, молодой человек, не в порядке со здоровьем. Надо вам к специалисту !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c