BDE冲突(在线等待)(200分)

  • 主题发起人 主题发起人 wyxin2001
  • 开始时间 开始时间
W

wyxin2001

Unregistered / Unconfirmed
GUEST, unregistred user!
我编写了一个小程序,用的DELPHI5是自带的BDE数据引擎
后来我安装了清华紫光的一套档案管理系统的客户端
问题就出现了,它也自带了一套BDE(定制的)
两个BED冲突,清华紫光的系统无法正常运行
可是用户已经安装并且必须保留清华紫光的系统
这样我的程序就不能正常使用了
请教各位DFW,能不能帮忙想想办法
或者有谁遇到过相同或相似的问题,是怎么解决的
提供一点建议,谢谢。
 
你把BDE所需要的dll放到你自己的程序目录下,最好是动态创建别名,这样肯定不会有冲突
 
没必要使用两个呀,一个就够了
后面安装的BDE会把以前的覆盖掉的
但是如果把后面安装的BDE卸载,原来的也就不能用了,
 
用ado多好
 
to twos:
清华紫光客户端的安装程序种自带的bde。
正像你说的,如果无论先安装那一个,后安装的总是不能使用,甚至两个应用程序
都不能使用。:(
to shenloqi:
听起来你说的办法好像可行,不过你能再说的详细一点么。我对bde的内核不清楚,
不知道该如何动态创建别名。:)

清楚
 
to naughtboy:
程序已经编好了,其中使用的有关数据库的控件很多,交货的时间又很急,来不及
修改了。这是我第一次制作产品,经验不足,考虑不周。
看来你对ado很熟,我想请教一个问题,如果使用ado连接,每次数据库的位置一变化
都要重新修改源程序中adoconnect的数据库路径,而bde只要重新配置一下odbc就可以了。
不知道我理解的对不对?
 
两个BDE冲突?
其实系统只有一个BDE,只不是是两个安装程序发生了冲突而已,就是说清华紫光的系统和你的系统的BDE安装部分存在问题。
其实安装BDE就是将文件拷贝过去,然后写注册表。
产生问题的原因可能是:
1、两个系统是不同类型的数据库,安装的时候都仅仅安装了属于自己的BDE驱动。
2、安装的时候覆盖了上一个系统的BDE别名配置,导致运行不了。

解决办法:
1、分析清楚你的系统使用的数据库类型和清华紫光的系统数据库类型。
2、如果两个系统使用相同类型的数据库,那么你省事了,不给客户做安装程序,直接让它点击运行就ok了。
当然,你需要让它通过BDE或者程序修改建立你需要的别名。
3、如果两个系统使用不同类型的数据库,你可以在安装程序中判断是否原来已经安装了BDE,并且是否已经安装了相应的BDE驱动,如果已经有了,就不再安装。
如果没有,则安装,但是是在原来bDE的基础上安装,而不是另立炉灶。就是说,拷贝相应文件,然后写注册表。
 
to yzhshi:
两个系统都使用的sql数据库,我用的sql7.0,清华紫光的sql版本我不清楚。
我还是不太清楚您说的——在原来bDE的基础上安装,而不是另立炉灶。就是说,
拷贝相应文件,然后写注册表。是怎样实现的?在安装过程中自动实现的,还是需要
手动实现?
我需要安装10台左右的客户端,所以希望手动的部分越少越好。:)
 
既然是使用相同的SQL Server数据库,就好办了
1、你拷贝bdeadmin.exe ,然后打开,然后新建别名。看是否可以以mssql为驱动建立别名,如果可以,你需要做的就很简单了。
只需要在BDE里面建立一个别名而已。
2、如果上面的不可以,那么你需要看Configuation->Drivers->Native->MSSQL是否存在,和你需要的是否一样(和你本机的对比一下)。
一般上面的两种办法应该都可以。
就是说,如果两个系统都是使用相同数据库,既然它已经安装了驱动程序,那么你就没有必要再继续安装了。
如果还不行,你就需要再麻烦一些了。
就是说两个使用驱动如果不一样,你大概就需要动程序了。。。
 
to yzhshi:
非常谢谢,我明天会试验一下你说的方法,如果可以分数就是你的了
:)
现在我要下班了,DFW们明天见。


 
>>看来你对ado很熟,我想请教一个问题,如果使用ado连接,每次数据库的位置一变化
>>都要重新修改源程序中adoconnect的数据库路径,而bde只要重新配置一下odbc就可以了。
>>不知道我理解的对不对?
你可以把AdoConnection中的连接串放在代码中设置啊。先在设计期设置好AdoConnection
的连接,再从它的ConnectionString属性中将连接串拷贝出来,放在代码中设置。你可以
在代码中判断当前数据库所在的位置,再用新的位置替换连接串中的相应部分。
 
其实操作SQL Sever,个人还是推荐使用Ado的,不过如果你的程序已经编写好了,就不要那样玩了。
其实,实际上想想Ado和BDE以及ODBC有什么差别?
我们都可以通过程序来动态建立,他们同样都需要一些动态库的支持。只不过是那一个对特定数据库支持的好一些了。
 
to HunterTeam:
谢谢。下次编程的时候我会试着采用您说的方法。
to yzhshi:
有一点新情况,我的bde坏掉了。原本我机器上有一个delphi5自带的bde,为了测试
我在本机上安装清华紫光档案管理的客户端,它的安装程序中打包了bde,结果安上不能用。
我的程序运行正常。但是在我今天上午卸载了清华紫光之后,bde就不能使用了。而且,我
用delphi安装盘重新安装dbe,仍然不能恢复。我该怎么办?
:'(
 
好办,将HKEY_LOCAL_MACHINE/SOFTWARE/Borland/Database Engine主键删除或者改名,然后安装试验一下。
这个是BDE的注册表信息
 
to yzhshi:
修好本机的bde了,非常感谢!
 
to yzhshi:
抱歉拖了很长时间。:)
由于服务器出现问题,尚未解决,所以测试被迫停止。:(
我在这里把我遇到的几种情况写下来,希望有助于DFW们帮忙找错。
(1)在已安装清华紫光客户端(带BDE)的机器上,安装我的应用程序(打包不带BDE)
ODBC连接测试没问题,BDE中同时也添加了数据库别名。但是SQL客户端不能打开服务器上
的数据库,错误提示:[microsoft][odbc sql server driver][sql server]cannot open
database requested in login 'ams'.login fails.alias:jszb.('ams'并不是我所需要
的)。
(2)在先安装D5(带BDE)的机器上,安装清华紫光。清华紫光运行时提示:SQL65
而且我的程序也不能正常运行,重新配置ODBC,连接没问题;察看BDE,不能激活数据库
别名;SQL客户端访问数据库没有问题。删除ODBC的数据库别名,直接从BDE配置数据库,
连接没问题,但是程序运行时会提示找不到数据库;如果再配置一遍ODBC,则用D5的数据
浏览器察看数据库,发现全是空表???但是在SQL中察看数据库表里的内容都有???
 
>>清华紫光运行时提示:SQL65
具体仅仅提示这几个字吗?
是不是紫光需要的SQL Server 6.5的客户端,而你的程序需要7.0以上的客户端,如果是那样的话,就比较麻烦了。
 
装好D5的BDE后将HKEY_LOCAL_MACHINE/SOFTWARE/Borland/Database Engine主键备份,再
安装清华紫光,同样备份,然后分别测试程序,并且找出两次安装的不同的地方(别名等)
 
//[microsoft][odbc sql server driver][sql server]cannot open database requested
// in login 'ams'.login fails.alias:jszb
打开你的源程序,重新处理一下里面的 DATABASE。 试试
 
to yzhshi:
版本的问题我倒是没大注意,我找找看说明书上有没有。尽快答复。:)
谢谢你一直以来的关注。:)
to yanghai0437:
上次试的时候没有注意记录,一会马上再试一次,谢谢提醒。
to smallbs:
源程序中的database设置没有问题。而且是动态打开的。
 
后退
顶部