制作安装程序时bde老错(100分)

  • 主题发起人 主题发起人 sonie
  • 开始时间 开始时间
S

sonie

Unregistered / Unconfirmed
GUEST, unregistred user!
;我的一个东西用C++Builder 4和delhpi混合编程,主模块用C++,控件用
delhpi做的,其中用sql_link连接后台ms sql server,但用installshield
打包发布时我选择包括了sql_link和dbe,但设置dbe时要我输入别名我没输入
结果setup后发现dbe不能用了!不仅仅是我的东西,C++builder和delhpi的
都不行了。同样的问题也遇见在以前的一个全delphi 5程序中,我当时用的时
odbc,能否指点迷津?急!
 
1)odbc不需要bde的
2)不同版本的bde互相不兼容的
3)bde安装可以选在partial的,不同的partial有差别
4)不同版本的cb和delphi共存时,bde可能会失败
5)同一版本的概念是具有同一内核
 
1.制作环境:
Delphi 5.0
Install Shield for Delphi 5.0
BDE ver 5.01
Window 2000 (制作好后,在Win98下安装运行都正确)

2.制作步骤:
1〉找出所有需要的文件:< 安装到<INSTALLDIR>路径下 >
IDR20009.DLL
BANTAM.DLL
CHARSET.CVB
FAREAST.BTL
IDAPI32.DLL
IDBAT32.DLL
IDPDX32.DLL
IDSQL32.DLL

2>修改注册表:

路径:HKEY_LOCAL_MACHINE/Software/Borland/Database Engine 值名: DLLPATH 值:<INSTALLDIR>
路径:HKEY_LOCAL_MACHINE/Software /Borland/BLW32 值名: BLAPIPATH 值:<INSTALLDIR>


3>别名的建立:

在程序中建立:程序一个例子如下:
procedure TFrmTM.AutoCreateAlias;
const
DBType='Type=STANDARD';
DBDefaultDriver='DEFAULT DRIVER=PARADOX';
DBBCD='ENABLED BCD=FALSE';
DBPATH='PATH=';
DataDir='Data';
AliasName='TM';
var
MyList: TStringList;
DataPath:string;
begin
if test.IsAlias(AliasName) then begin
Exit;//如果别名存在则不建立否则建立TM别名。
end;
MyList := TStringList.Create;
DataPath:=RectifyPath(GetCurrentDir)+DataDir;
try
with MyList do begin
Add(DBType);
Add(DBDefaultDriver);
Add(DBBCD);
Add(DBPath+DataPath);
end;
test.AddAlias(AliasName, Driver, MyList);
finally
MyList.Free;
end;
end;

4>其他步骤按照不详细介绍:(参考delphi书籍)
 
问www,是不是我在打包时不选dbe,直接把这几个问题加进去,再去改注册表?我晚上
试试。
 
最好的方法是数据库别名在程序中动态创建。这样可以避免发生找不到数据库别名的问题
 
阿丙:
同意你的看法。但是我认为,这个问题的关键在于驱动程序没安装好,而不是
没用好。
 
我用D4时一直犯这个错,没办法的,BUG,除非装完后在写文件或注册表
 
有几个连接SQL Server的文件:
ntwdblib.dll;dbmsspxn.dll;dbmssocn.dll;dbnmpatw.dll
在Windows的系统目录下的.
我制作安装程序时是手动放进去的.
还是制作时本机一定要装有BDE(当然),在系统帮你设定默认的BDE文件后,不应再去
修改这些文件的路径所在, 上一次我就是自以为是,结果不知错在哪. 白花了不少时间

希望对你有所帮助.
 
; 1、 你说的BDE不能够使用是指 BDE ADMIN不能使用了还是说完全崩溃了?
2、在BDE不能够使用以后你重新安装 DELPHI BDE 能够使用吗?
如果BDE 还是不能够使用 那么是因为BDE 被异常破坏了 你需要手动删除
BDE 相关的文件夹和文件 因为BDE 安装不会检查破坏。
3、事实上在使用 INSTALLSHIELD 制作安装程序时就已经可以设置动态的别名
了(只是我认为) 在设置别名所指的路径的时候应该使用动态的路径 在
INSTALLSHIELD 里有动态的变量 如<INSTALL> (注 我记得不是很清楚的)
你的动态路径可以在动态路径上进行确定 试一试
 
多人接受答案了。
 
后退
顶部