首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杀死BDE的幽灵

杀死BDE的幽灵
EN

Stack Overflow用户
提问于 2009-05-09 19:11:02
回答 3查看 845关注 0票数 0

在我的Delphi7应用程序中,我可以在以管理员身份("Dave")登录时连接到数据库,但不能在以标准或受限用户("Paris")身份登录时连接到数据库。在XP家庭版和Vista商业旗舰版64上发生。我对db使用别名。数据库采用Firebird,中间件采用IBO4.7。

我在另一个帖子中发布了这篇文章,但我知道我有更多的信息,似乎BDE才是问题所在。很明显DB.Pas是有关联的。我可以在project.map文件中看到它& exe读取注册表以获取BDE别名。

我已经删除了所有与BDE相关的源代码& dcu文件,我已经详尽地搜索了项目中的DB组件&结果是干净的。

有人去过那里吗?

EN

回答 3

Stack Overflow用户

发布于 2009-05-10 07:48:41

假设您没有使用包进行构建-从磁盘中删除db.pas和db.dcu (例如,将它们重命名为db!.pas和db!.dcu ),然后重新构建。编译器应在引用数据库的位置停止。

票数 4
EN

Stack Overflow用户

发布于 2009-05-09 21:03:13

简单说一句,你是否也检查了所有的USES子句?

你要担心的不是Db.pas,我不熟悉IBO,但我怀疑它也使用了Db.pas (TDataSet,TDatasource)。

您必须在其中查找DbTables单元和组件。它包含一个全局声明和实例化的会话变量。和TSession链接到BDE。

票数 3
EN

Stack Overflow用户

发布于 2009-05-11 01:23:37

我是在你的帮助下解决的。首先,gabr建议我删除.dcus。我找到了,但还是找到了几个,包括db.dcu。杀了它。现在编译停止在使用IB.dcu (到Interbase的Borland接口)。杀了它,并得到了一个编译。在.map中为数据库添加了Grepped不存在。仍然不能像Paris那样工作,所以我在源码中找到了一条Jason评论,显示TConnection的AliasName属性是用于BDE别名的,而不是FireBird别名的,所以我将该属性设置为空。

在Paris下运行exe &它起作用了!

现在,我要告诉你,我把这个带回家过周末,希望能得到一些关注。当它起作用的时候,我喊了一声该死的邦泽!在我最高的声音-&所有的三只猫俯冲,藏起来。

"IB“--70万行代码中包含3个字符!

因此,如果有人被这个鬼魂缠身,请使用grep for IB!

谢谢你们(女孩们?)-我怎么才能给出最好的答案呢?

谢谢,戴夫。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/843852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档