Install BDE программы

Периодически муссируются вопросы типа 'Как установить BDE?' и т.п.
Предлагаю, как пример возможного решения проблемы, след. программу .

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

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

Счастливо,

Константин Кочедыков / <a href="mailto:kostya@roadtech.saratov.su">kostya@roadtech.saratov.su</a> / }


{$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 /
Взято с сайта http://blackman.wp-club.net/

CHARSET.BLL

OTHER.BLL

IDAPI32.CFG

BLW32.DLL

IDAPI32.DLL

IDBAT32.DLL

IDPDX32.DLL

IDR20009.DLL

IDSQL32.DLL
откуда возьмем эти файлы!!

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...