【发布时间】:2012-05-14 17:49:12
【问题描述】:
我在 Windows XP 和 Windows7 操作系统上的 Delphi 7 中遇到了 TADOQuery 组件的奇怪行为。以下问题在 Windows7 操作系统上运行良好,但在 XP 操作系统上出现错误。
让我解释一下这个场景,我有一个 TADOConnection 组件和两个 TADOQuery 组件。 TADOConnection 组件具有ConnectionString 属性的值,如下所示:
ADOConnection1.ConnectionString := 'Provider = MSDASQL.1; Password = My Password; User ID = My User ID; Data Source = My Data Source';
我已经将角色/授予的权限应用于我登录应用程序的用户 ID/密码。
我已使用Connection 属性将 TADOConnection 组件连接到 TADOQuery 组件。
当我执行第一个 sql 时,它可以正常工作,没有任何错误,但是当我执行第二个 sql 时,我在 Windows XP 操作系统上遇到以下错误。
[Microsoft] [SQL Server Native Client 10.0] [SQL Server] SELECT 对象“我的表名”、数据库“我的”权限被拒绝 数据库名称',架构'dbo'
如果我在 Windows7 操作系统上执行相同的代码,它可以正常工作,没有任何错误。
任何人都可以关注可能缺少的内容或问题所在吗?
我添加了“Persist Security Info = False;”连接字符串如下:
ADOConnection1.ConnectionString := 'Provider = MSDASQL.1; Persist Security Info = False; Password = My Password; User ID = My User ID; Data Source = My Data Source';
现在,每当我使用 TADOQuery 组件执行 sql 时,我每次都需要编写以下语句,即使我在开始时已经设置了 TADOQuery 的“连接”属性,但我仍然需要在每次执行时设置这个属性sql。
ADOQuery1.Connection := ADOConnection1;
但正如我所说,在 Windows7 上,无需更改 TADOConnection 组件的“ConnectionString”属性,也无需设置任何 TADOQuery 组件的“Connection”属性。
谁能告诉我到底要做什么?
如果您的应用程序太大并且需要在很多地方进行编码更改,有人会同意吗?那么测试工作呢?在所有地方都必须进行测试,对吗?
所以,我仍在寻找合适的解决方案。这个问题仍然没有答案。
如果有人有任何线索或提示或适当的解决方案,将不胜感激。
【问题讨论】: