我在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的“Connection”属性,我仍需要在执行时设置此属性sql。
ADOQuery1.Connection := ADOConnection1;
但正如我所说,在Windows7上,无需更改TADOConnection组件的“ConnectionString”属性,也无需设置任何TADOQuery组件的“Connection”属性。
有人可以说出究竟要做什么吗?
如果您的应用程序太庞大且需要编码更改的地方,那么有人会同意吗?那么测试工作呢?在所有地方都必须进行测试,对吧?
所以,我仍在寻找合适的解决方案。这个问题仍然没有答案。
如果有人有任何线索或暗示或适当的解决方案,将受到高度赞赏。
答案 0 :(得分:2)
OLE DB Services=-4
添加到连接字符串。