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

Вниз

Paradox   Найти похожие ветки 

 
arous ©   (2003-07-28 00:59) [0]

Как узнать, поставлены дрова на БД Paradox?


 
Wowa-K ©   (2003-07-28 07:15) [1]

Узнай лучше стоит ли BDE


 
arous ©   (2003-07-28 14:12) [2]

А тогда как узнать стоит ли этот BDE?


 
Anatoly Podgoretsky ©   (2003-07-28 14:17) [3]

Зачем тебе?
Ну запусти Database Desktop и сразу узнаещь. Или запусти любую программу которая будет работать с базой.


 
Dred2k ©   (2003-07-28 15:08) [4]

> arous © (28.07.03 14:12)> А тогда как узнать стоит ли этот BDE?

Перед всеми операциями с базой
try
Session.Open;
except
// ... BDE не стоит
end;





 
Aleksandr ©   (2003-07-28 19:39) [5]

2 Dred2k :
Не факт. Эксепшн может выпасть и при просто повисшей сессии (например, в дизайн-тайме открыли и не закрыли перед запуском).
Надежнее поискать ключ в реестре в HKEY_LOCAL_MACHINE.


 
Anatoly Podgoretsky ©   (2003-07-28 19:54) [6]

Искать ключ совсем не надежно, ключ может быть, а БДЕ нет. Правильно только обращение к функциям БДЕ, из них особо правильно обращение к функцие init


uses bde;
...
try
dbiInit(nil);
except
( "BDE не установлено!")
Искать ключ совсем не надежно, ключ может быть, а БДЕ нет. Правильно только обращение к функциям БДЕ, из них особо правильно обращение к функцие init


uses bde;
...
try
dbiInit(nil);
except
showmessage("BDE не установлено!")
end;

Alex Gorkusha


http://podgoretsky.com/ftp/Language/nps/ru.delphi.db.html#N22


 
Aleksandr ©   (2003-07-29 03:48) [7]

Согласен. Не предложил третьего варианта, выбирая между двумя. Хотя у меня dbiInit(0) тоже дает аналогичную реакцию незакрытым сессиям.


 
Dred2k ©   (2003-07-29 09:26) [8]


Unit

DBTables

var Session: TSession;

Description

Session is responsible for maintaining all of the database components used by an application. It is created automatically as part of an application"s initialization and destroyed as part of the application"s termination. The Session variable must remain active at all times; it can not be destroyed and recreated.


(смотрим DbTables.pas)
TSession.Open -> TSession.SetActive(True) -> TSession.StartSession(Value) -> TSession.InitializeBDE -> DbiInit(@Env)

Этот способ с точки зрения VCL предпочтительнее и корректнее.
Насчет ключей реестра - способ неоднозначный. Ключ будет на месте, а пары DLL не хватает, к примеру (тем более, учитывая то, как некоторые "ставят" BDE).
Явный вызов Session.Open перед работой с базой снимет все неясности (тем более, что она - var Session - все равно откроется потом, хоть и не явно).



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
3-68194
Magic&Wizard
2003-07-28 11:58
2003.08.21
API InterBase и FireBird


4-68587
Alien
2003-06-18 17:02
2003.08.21
Как определить по Handle окно было взято или процесс?


14-68477
race1
2003-08-06 11:54
2003.08.21
Возможно ли это


14-68555
FreeSky
2003-08-04 17:45
2003.08.21
Нужны компоненты TAPI желательно с русским описанием...


1-68339
syte_ser78
2003-08-07 12:52
2003.08.21
обращение к AutoCad