【发布时间】:2009-08-07 23:16:33
【问题描述】:
我有一个扩展存储过程(用 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,但没有区别。
有什么想法吗?谢谢。
【问题讨论】:
-
最新的是,这根本不适用于 SQL Server 2000。在 SQL Server 2008 上,这确实有效,但我不知道我的 xp 连接到哪个数据库。它当然不是 ODBC DSN 指向的数据库,也不是用户的默认数据库。
标签: sql-server stored-procedures odbc dsn