改注册表会吧!
改动HKEY_LOCAL_MACHINE\SOFTWARE\Borland\database engine 新建字符串key:dllpath,value: <InstallPath>\bde;
改动HKEY_LOCAL_MACHINE\SOFTWARE\Borland\database engine 新建字符串key:dllpath,value: <InstallPath>\bde;
解决方案 »
- TreeView以流的方式加载的问题!
- Delphi用webbrowser如何取得frame嵌套frame的HTML的原代码?
- 如何知道某个电脑是否装了MPEG4解码器?
- 请问为什么不能执行???
- 问一个关于IntraWeb的问题
- 哪位给注释一下?看不太懂,多谢!
- 谁能发一份软件设计文档的范例?
- 请问Delphi的换行怎么输出
- 用BatchMove怎么把VFP的索引文件一同转移?
- 用Delphi+Access写程序,用了TQuery,打包后至少有多大?1M,2M,3M?
- 一个delphi初学者的求助!
- 怎样用nmstrmserv接收数据时能用progressbar显示进程?60分奉上!60分奉上!60分奉上!
因为bde的安装和配置不需要全部的文件,只需要10来个文件左右,因此我在打包的时候就吧那些文件也放在包里,安装的时候就分发到某个固定的目录下。然后通过程序去注册bde,别名也一样。如果是使用paradox表的,那么只要知道路径就可以了,因此动态设置别名很方便。
asl.Clear ;
asl.Add ('Driver Name= MSSQL');
asl.Add ('Server Name= ' + svrname);
asl.Add ('Database Name= ' + Dname);
asl.Add ('User Name= ' + Username);
asl.Add ('sqlqrymode=local'); if not Session.IsAlias ('STJ') then
begin
try
Session.AddAlias ('STJ','MSSQL',ASL);
finally
asl.Free ;
end;
end
else if Session.IsAlias ('STJ') then
begin
try
Session.ModifyAlias ('STJ',ASL);
finally
asl.Free ;
end;
end;动态注册bde的例子:
procedure InitBde;
var
DataDirectory : string;
ARegistry : TRegistry;
begin
DataDirectory := ExtractFilePath( Application.ExeName );
DataDirectory := DataDirectory+'bde\';
ARegistry := TRegistry.Create;
with ARegistry do {创建一个TRegistry对象实例 }
begin
RootKey := HKEY_LOCAL_MACHINE;{指定根键为HKEY_LOCAL_MACHINE}
if not OpenKey( 'Software\Borland\BLW32', False ) then
begin
// showmessage('key 1'); {写入BDE语言驱动程序所在的目录,即当前程序目录 }
OpenKey( 'Software\Borland\BLW32', True );
WriteString( 'BLAPIPATH', DataDirectory );
end;
CloseKey; {关闭主键,同时将信息写入注册表}
RootKey := HKEY_LOCAL_MACHINE;
if not OpenKey('Software\Borland\Database Engine',False) then
begin
// showmessage('key 2');
OpenKey('Software\Borland\Database Engine',True);
WriteString( 'DLLPATH', DataDirectory );
end;
CloseKey; {关闭主键,同时将信息写入注册表}
Destroy; {释放内存 }
end;
end;