我有一个扩展存储过程(如果有任何不同,用Delphi编写)通过ODBC建立自己的连接并执行一些处理 - 这些都是单独使用T-SQL无法完成的。
如果我尝试使用设置的系统DSN进行连接(例如名为MyDataSource),则xp会返回以下错误:
[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法打开登录“MyDataSource”中请求的数据库。登录失败。
但是,如果我使用连接字符串(SERVER = MyServerName; DATABASE = MyDatabaseName;等)连接,那么它连接& xp有效。
我测试了xp之外的代码,只是一个Windows应用程序,并且使用DSN的连接有效。我期待这一点,因为它与我连接数据库10年的方式相同!
所以我有它的工作,但我真的想知道为什么它不能使用DSN。我也试过用户DSN,但没有区别。
有什么想法吗?感谢。
答案 0 :(得分:1)
请记住,执行扩展存储过程时,它在SQL Server服务正在使用的登录名下运行。如果该SQL Server中的日志没有网络权限,则会发生拒绝错误。我希望这会有所帮助。