
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
Как включить BDE в установочный диск
|
||
| Философия, технологии, алгоритмы! |
![]() |
|
|
Опции темы |
|
|
#1 |
|
Форумец
Сообщений: 46
Регистрация: 01.10.2010
|
Как включить BDE в установочный диск
Разработал приложение, которое использует в работе БД.
Можно ли в установочный диск включить BDE (из C++ Builder) и прописать alias? |
|
|
|
|
#2 |
|
Out There
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47
|
про алиасы не знаю, а про bde гугл нашел вот http://www.delphi3000.com/articles/article_2283.asp?SK=
|
|
|
|
|
#3 |
|
Бывалый форумец
Сообщений: 652
Регистрация: 05.08.2005
|
Алиас кажется должен прописываться и в ODBC-конфиге, и в BDE-конфиге. Кажется, BDE не работает если в ODBC не прописать.
Файлы BDE вполне можно включить, только посмотреть еще, что в реестр прописывается и добавить куда надо. Точнее не помню, давно дело было. В общем не очень удобная система для автоматической "прописки" баз. Лучше наверное сделать, в дополнение к основной программе - дополнительную программку-инсталлятор, которая все пути и алиасы пропишет (и путь к БД по указанию юзверя или того, кто будет ставить БД и программу). |
|
|
|
|
#4 |
|
Кэп Улитка
Сообщений: 8,067
Регистрация: 04.05.2005
Возраст: 45
|
1. Включить можно, см. в конце
2. Алиасы можно создавать динамически, у BDE есть функции создания и удаления. 3. Использование BDE уже лет 5 как плохой тон. Код:
program InstallPrfSt;
{
Программа иллюстрирует, как установить BDE с поддержкой PARADOX 7.0
на "чистой машине" и создать алиас.
Пример использования в качестве простейшего инсталлятора для программы
C:\MyDir\MyProg.exe
1.Создайте каталог C:\MyDir\BDE и скопируйте в него след. файлы:
CHARSET.BLL
OTHER.BLL
IDAPI32.CFG
BLW32.DLL
IDAPI32.DLL
IDBAT32.DLL
IDPDX32.DLL
IDR20009.DLL
IDSQL32.DLL
BDEADMIN.EXE - по вкусу, т.к. необходимым не является.
2.Измените значение константы AliasName на имя необходимого вам алиаса.
3.Откомпиллируйте и запустите эту программу из каталога C:\MyDir.
ВHИМАHИЕ!!! Если на машине уже установлено BDE, то перед экспериментами
сохраните (на всякий случай) след. ключи из реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine] и
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32].
}
{$APPTYPE CONSOLE}
uses
Windows, BDE, Registry;
const
AliasName: string = 'PrefStat';
var
R: DBIResult;
Path: string;
procedure WriteString(S1:string);
begin
S1 := S1 + #0;
AnsiToOem(@S1[1], @S1[1]);
writeln(S1);
end;
function GetExePath(S1:string):string;
var
I, K :Integer;
S: string;
begin
K := 1;
S := '';
for I := Length(S1) downto 1 do
begin
if S1[I] = '\' then
begin
K := I;
Break;
end;
end;
for I := 1 to K - 1 do
S := S + S1[I];
Result:=S;
end;
procedure InstallBde;
const
Bor: string = 'SOFTWARE\Borland';
var
a: TRegistry;
BPath: string;
begin
BPath:=PATH + '\BDE';
a := TRegistry.Create;
with a do
begin
RootKey := HKEY_LOCAL_MACHINE;
OpenKey(Bor + '\Database Engine', True);
WriteString('CONFIGFILE01', BPath+'\IDAPI32.CFG');
WriteString('DLLPATH', BPath);
WriteString('RESOURCE', '0009');
WriteString('SaveConfig', 'WIN32');
WriteString('UseCount', '2');
CloseKey;
OpenKey(Bor+'\BLW32',True);
WriteString('BLAPIPATH', BPath);
WriteString('LOCALE_LIB3', BPath+'\OTHER.BLL');
WriteString('LOCALE_LIB4', BPath+'\CHARSET.BLL');
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\SYSTEM\INIT',True);
WriteString('AUTO ODBC', 'FALSE');
WriteString('DATA REPOSITORY', '');
WriteString('DEFAULT DRIVER', 'PARADOX');
WriteString('LANGDRIVER', 'ancyrr');
WriteString('LOCAL SHARE', 'FALSE');
WriteString('LOW MEMORY USAGE LIMIT', '32');
WriteString('MAXBUFSIZE', '2048');
WriteString('MAXFILEHANDLES', '48');
WriteString('MEMSIZE', '16');
WriteString('MINBUFSIZE', '128');
WriteString('SHAREDMEMLOCATION', '');
WriteString('SHAREDMEMSIZE', '2048');
WriteString('SQLQRYMODE', '');
WriteString('SYSFLAGS', '0');
WriteString('VERSION', '1.0');
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\DATE',True);
WriteString('FOURDIGITYEAR', 'TRUE');
WriteString('LEADINGZEROD', 'FALSE');
WriteString('LEADINGZEROM', 'FALSE');
WriteString('MODE', '1');
WriteString('SEPARATOR', '.');
WriteString('YEARBIASED', 'TRUE');
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\NUMBER',True);
WriteString('DECIMALDIGITS', '2');
WriteString('DECIMALSEPARATOR', ',');
WriteString('LEADINGZERON', 'TRUE');
WriteString('THOUSANDSEPARATOR', ' ');
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\TIME',True);
WriteString('AMSTRING', 'AM');
WriteString('MILSECONDS', 'FALSE');
WriteString('PMSTRING', 'PM');
WriteString('SECONDS', 'TRUE');
WriteString('TWELVEHOUR', 'TRUE');
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\REPOSITORIES',True);
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\DRIVERS\PARADOX\INIT',True);
WriteString('LANGDRIVER', 'ancyrr');
WriteString('TYPE', 'FILE');
WriteString('VERSION', '1.0');
CloseKey;
OpenKey(Bor+'\Database Engine\Settings\DRIVERS\PARADOX\TABLE
CREATE',True);
WriteString('BLOCK SIZE', '4096');
WriteString('FILL FACTOR', '95');
WriteString('LEVEL', '7');
WriteString('STRICTINTEGRTY', 'TRUE');
CloseKey;
end;
a.Free;
end;
begin
Path:=GetExePath(ParamStr(0));
R:=dbiInit(nil);
if R<>DBIERR_NONE then
begin
WriteString('Инициализация BDE ...');
InstallBDE;
end;
R:=dbiInit(nil);
if R=DBIERR_NONE then
begin
WriteString('Инициализация BDE прошла успешно');
DbiDeleteAlias(nil, PChar(AliasName));
R:=DbiAddAlias(nil, PChar(AliasName), szPARADOX,
PChar('PATH:'+Path+'\DB'), True);
if R=DBIERR_NONE then
WriteString('Псевдоним "'+AliasName+'" создан')
else
WriteString('Ошибка создания псевдонима "'+AliasName+'"');
R:=DbiCfgSave(nil, nil, Bool(-1));
if R=DBIERR_NONE then
WriteString('Файл конфигурации сохранён')
else
WriteString('Ошибка сохранения файла конфигурации');
DbiExit;
end
else
WriteString('Ошибка инициализации BDE');
end.
|
|
|