我有一个 SQL Server 2008。我使用Firebird/InterBase(r) driver
.
连接工作正常。
然后我在 SQL Server 2008 中使用Microsoft OLE DB Provider for ODBC diver
.
一切似乎都很好。我可以使用从表中提取数据
SELECT * FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT * FROM TABLENAME')
成功。
我的问题是远程存储过程调用。在 Firebird 端,有一个存储过程,它有一个输入参数。有时我得到结果,但大多数时候我得到一个错误。我不确定为什么会发生这种情况,但我对错误了解不多。
我这样调用程序:
SELECT * FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT * FROM GET_DOCUMENT_S(05011002766916)'
它要么我得到结果(1 行),要么我得到一个错误。对于 id 05011002766916i 总是得到结果,但对于某些 id 我从来没有得到结果,即使 Firebird 管理员声称相同的过程调用在他的客户端上正常返回结果。
以下是我得到的错误:
消息 7399,级别 16,状态 1,第 1 行
链接服务器“LINKEDSERVERNAME”的 OLE DB 提供程序“MSDASQL”报告了错误。提供商没有提供有关该错误的任何信息。
消息 7321,级别 16,状态 2,第 1 行
准备查询“SELECT * FROM GET_DOCUMENT_S(04170200133A120)”以针对链接服务器“LINKEDSERVERNAME”的 OLE DB 提供程序“MSDASQL”执行时发生错误。
或者:
消息 7399,级别 16,状态 1,第 1 行
链接服务器“LINKEDSERVERNAME”的 OLE DB 提供程序“MSDASQL”报告了错误。提供商没有提供有关该错误的任何信息。
消息 7330,级别 16,状态 2,第 1
行无法从链接服务器“LINKEDSERVERNAME”的 OLE DB 提供程序“MSDASQL”获取行。
有人可以解释一下可能是什么问题,因为目前我不知道它是 ODBC、链接服务器还是 Firebird 端的问题......
谢谢你。