SQL Server链接服务器的Timberline ODBC错误:无法初始化数据源对象

时间:2013-06-10 18:32:36

标签: sql-server-2008 linked-list odbc msdasql

只是为了奠定基础:

  • 在64位Windows服务器上,我们安装了64位SQL Server 2008 R2
  • 我们在同一台计算机上安装了32位版本的SQL Server Express
  • 使用32位Express版本,我们成功创建了一个到Timberline数据存储的链接服务器,如下所示:

    EXEC sp_addlinkedserver
         @server = 'TimberlineTest',
         @provider = 'MSDASQL',
         @srvproduct='Timberline Data',
         @datasrc = 'TimberlineDSN'
    

然后返回所有表:

exec sp_tables_ex 'TimberlineTest'

我们还创建了一个用户,如下所示:

EXEC sp_addlinkedsrvlogin
 @rmtsrvname = 'TimberlineTest',
 @useself = 'False',
 @rmtuser = 'sa',
 @rmtpassword = 'xxxxxx'
GO

此外,在SSMS查询窗口中,这对主数据库运行时效果很好:

select * from timberlinetest.[c:\Training\Extended]..Master_PRM_Employee

只要我们从SSMS内执行查询,一切正常。但是,当我们启动可能尝试访问该链接服务器的任何类型的第三方工具时,我们开始遇到麻烦。我们有一个小的查询测试工具,允许您输入连接字符串并运行查询。我们使用此连接字符串首先进入Master db:

Provider=SQLOLEDB; Data Source=localhost\SQLEXPRESS32BIT; Libraries=Master; User ID=sa; Password=xxxxxx

该连接有效,我们可以ping服务器并查询主数据库。但是当我们尝试相同的Timberline查询(从timberlinetest中选择*)时,我们遇到了这个错误:

  

无法为链接服务器“timberline test”初始化OLE DB提供程序“MSDASQL”的数据源对象。用于链接服务器“timberline test”的OLE DB提供程序“MSDASQL”返回消息“[Sage Timberline Office] [Sage Timberline Office ODBCDriver] [DRM文件库]无效的帐户名称。”

有几点需要注意......出于测试目的:

  • 在目录c:\Training\Extended上,我们已打开安全范围,将Everyone设置为完全读写权限
  • 在Timberline内部,我们禁用了安全性(工具>安全管理>安全设置>未选中“启用应用安全”)

我不确定这里还有什么可做的。任何建议都会很棒。

1 个答案:

答案 0 :(得分:0)

(在问题编辑中回答。转换为社区维基回答。请参阅Question with no answers, but issue solved in the comments (or extended in chat)

OP写道:

  

问题解决了。

     

我将连接字符串更改为:

Provider=SQLOLEDB; Data Source=.\sqlexpress32bit; Libraries=master; Trusted_Connection=Yes
     

这很有效!!