БОЛЬШОЙ FAQ ПО DELPHI



Как установить 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.
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ