0

我有一个扩展的存储过程(如果有任何区别,则用 Delphi 编写),它通过 ODBC 建立自己的连接并执行一些处理 - 仅使用 T-SQL 无法完成的事情。

如果我尝试使用设置的系统 DSN(例如,名为 MyDataSource)进行连接,xp 将返回以下错误:

[Microsoft][ODBC SQL Server Driver][SQL Server] 无法打开登录“MyDataSource”中请求的数据库。登录失败。

但是,如果我使用连接字符串 (SERVER=MyServerName;DATABASE=MyDatabaseName;etc) 进行连接,那么它会连接并且 xp 可以工作。

我在 xp 之外测试了代码,只是一个 Windows 应用程序,并且使用 DSN 的连接有效。我希望这是因为它与我连接数据库 10 年的方式相同!

所以我让它工作,但真的想知道为什么它不能使用 DSN 工作。我也尝试过使用用户 DSN,但没有区别。

有任何想法吗?谢谢。

4

1 回答 1

1

请记住,执行扩展存储过程时,它是在 SQL 服务器服务使用的登录名下运行的。如果该 SQL 服务器中的登录没有网络权限,则会发生拒绝错误。我希望这有帮助。

于 2009-08-07T15:16:33.223 回答