Новичок
Профиль
Группа: Участник
Сообщений: 30
Регистрация: 15.11.2006
Репутация: нет Всего: нет
|
При установке своего ПО на "чистую" от BDE маштну возникала ошибка $2108 - Cannot locate IDAPI32.DLL. И это закономерно, т.к. на машине небыла установлена BDE. После захода по ссылке Как установить BDEя решил установить DBE програмно и из приведенного кода для установки BDE и регистрации нового Alias просто вычленил часть кода и предположил, что этого будет достаточно. Код ориентированный на установку BDE в моей программе выгляди так: | Код | unit Create;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, XPMan, StdCtrls, Buttons, Registry, ExtCtrls;
type TForm1 = class(TForm) BitBtn1: TBitBtn; XPManifest1: TXPManifest; Memo1: TMemo; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Bevel1: TBevel; procedure BitBtn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; CurrDir:string;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject); const SubKey:string='SOFTWARE\Borland'; var Reg:TRegistry; begin Reg:=TRegistry.Create; With Reg do begin RootKey:=HKEY_LOCAL_MACHINE; OpenKey(SubKey+'\Database Engine', true); WriteString('CONFIGFILE01',CurrDir+'IDAPI32.CFG'); WriteString('DLLPath',CurrDir); WriteString('RESOURCE','0009'); WriteString('SaveConfig','WIN32'); WriteString('UseCount','1'); CloseKey; OpenKey(SubKey+'\BLW32', True); WriteString('BLAPIPATH',CurrDir); if RadioButton1.Checked=true then begin WriteString('LOCALE_LIB3',CurrDir+'OTHER.BTL'); WriteString('LOCALE_LIB4',CurrDir+'CHARSET.CVB'); end; CloseKey; OpenKey(SubKey+'\Database Engine\Settings\System\INIT', true); WriteString('AUTO ODBC', 'false'); WriteString('DATA REPOSITORY',''); WriteString('DEFAULT DRIVER','PARADOX'); WriteString('LANGDRIVER', 'DBWINUS0'); WriteString('LOCAL SHARE','FALSE'); WriteString('LOW MEMORY USAGE LIMIT', '32'); WriteString('MAXBUFSIZE','2048'); WriteString('MAXFILEHANDLES','48'); WriteString('MEMSIZE','16'); WriteString('MINBUFSIZE','128'); if RadioButton1.Checked=true then begin WriteString('MTS POOLING','false'); end; WriteString('SHAREDMEMLOCATION', ''); WriteString('SHAREDMEMSIZE','2048'); WriteString('SQLQRYMODE',''); WriteString('SYSFLAGS', '0'); WriteString('VERSION', '4.0'); CloseKey; OpenKey(SubKey+'\Database Engine\Settings\SYSTEM\FORMATS\DATE',True); WriteString('FOURDIGITYEAR', 'TRUE'); WriteString('LEADINGZEROD', 'FALSE'); WriteString('LEADINGZEROM', 'FALSE'); WriteString('MODE', '0'); WriteString('SEPARATOR', '.'); WriteString('YEARBIASED', 'TRUE'); CloseKey; OpenKey(SubKey+'\Database Engine\Settings\SYSTEM\FORMATS\NUMBER', true); WriteString('DECIMALDIGITS', '2'); WriteString('DECIMALSEPARATOR', ','); WriteString('LEADINGZERON', 'TRUE'); WriteString('THOUSANDSEPARATOR', ''); CloseKey; OpenKey(SubKey+'\Database Engine\Settings\SYSTEM\FORMATS\TIME', true); WriteString('AMSTRING', 'AM'); WriteString('MILSECONDS', 'FALSE'); WriteString('PMSTRING', 'PM'); WriteString('SECONDS', 'TRUE'); WriteString('TWELVEHOUR', 'TRUE'); CloseKey; OpenKey(SubKey+'\Database Engine\Settings\REPOSITORIES', true); CloseKey; OpenKey(SubKey+'\Database Engine\Settings\DRIVERS\PARADOX\INIT', true); WriteString('LANGDRIVER', 'ancyrr'); WriteString('TYPE', 'FILE'); WriteString('VERSION', '4.0'); CloseKey; OpenKey(SubKey+'\Database Engine\Settings\DRIVERS\PARADOX\TABLE CREATE', true); WriteString('BLOCK SIZE', '4096'); WriteString('FILL FACTOR', '95'); WriteString('LEVEL', '7'); WriteString('STRICTINTEGRTY', 'TRUE'); CloseKey; end; Reg.Free; end;
procedure TForm1.FormCreate(Sender: TObject); begin CurrDir:=GetCurrentDir+'\BDE\'; end;
end.
|
При его использовании пусковой файл должен находиться в папке с вложенной папкой BDE собственно где располагаются файлы этой технологии. Далее по файлам. В тексте ссылки было написано следующее: | Код | { Программа иллюстрирует, как установить 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]. }
|
Насколько я понял (извиняюсь за глупость, но пишу для более четкого понимания) файлы нужно копировать из папки BDE созданной при установке Delphi на твой компьютер. Дак вот там, в моей BDE, файлов не было, а были Я перенес на клиентскую машину файлы не с указанным расширением, а свои файлы. Остальные файлы из списка у меня на машине существую и, согласно примеру, я перенес их на машину клиента. В итоге, после использования программы, код которой указан выше в вопросе, я вместо ошибки $2108 получил код ошибки $3E06 - Cannot load language driver An error while attempting to initialise the Borland Database Engine (error $3E06)Большая просьба от начинающего, помочь.
|