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

Вниз

Еще раз о 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-19674
KPY
2003-03-26 08:36
2003.04.07
несколько вопросов по Qreport


14-19793
sancho
2003-03-19 19:22
2003.04.07
Ж:-(х)


1-19522
kat
2003-03-26 11:09
2003.04.07
Отчет в QuickRep в ширину на 2-х страницах


1-19563
race1
2003-03-26 17:39
2003.04.07
findnext %


1-19539
DelphiN!
2003-03-26 18:32
2003.04.07
Как посмотреть, что находится в коммандной строке?