Install BDE программы

Previous  Top  Next

    
 

 

Периодически муссируются вопросы типа 'Как установить BDE?' и т.п.

Предлагаю, как пример возможного решения проблемы, след. программу .

Code:

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].

Замечания, предложения по улучшению приветствуются.

Счастливо,

Константин Кочедыков / kostya@roadtech.saratov.su / }

{$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('SHAREDMWriteString(' 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.

 

 

 

Константин Кочедыков / kostya@roadtech.saratov.su /

©Drkb::04539

Взято с сайта http://blackman.wp-club.net/