1

我有一个 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 端的问题......

谢谢你。

4

1 回答 1

0

问题出在火鸟方面。我使用了 Flamerobin 客户端,它产生了 IBPP:SQLException

于 2014-02-07T13:48:58.303 回答