我有一个SQL Server 2008.我使用Firebird/InterBase(r) driver
创建了与Firebird数据库的ODBC连接。
连接正常。
然后我使用Microsoft OLE DB Provider for ODBC diver
在SQL Server 2008中创建了一个链接服务器。
一切似乎都很好。我可以使用
从表中提取数据SELECT * FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT * FROM TABLENAME')
成功。
我的问题是远程存储过程调用。在Firebird端,有一个存储过程有一个输入参数。有时我会得到结果,但大部分时间我都会收到错误。我不确定为什么会发生这种情况,但我对错误并不了解。
我这样称呼程序:
SELECT * FROM OPENQUERY(LINKEDSERVERNAME, 'SELECT * FROM GET_DOCUMENT_S(05011002766916)'
它要么我得到结果(1行),要么我得到一个错误。对于id 05011002766916i总是得到结果,但对于某些id我永远不会得到结果,即使Firebird管理员声称相同的过程调用通常在他的客户端返回结果。
以下是我遇到的错误:
Msg 7399,Level 16,State 1,Line 1
链接服务器“LINKEDSERVERNAME”的OLE DB提供程序“MSDASQL”报告错误。提供商未提供有关错误的任何信息 Msg 7321,Level 16,State 2,Line 1
准备查询“SELECT * FROM GET_DOCUMENT_S(04170200133A120)”时出错,以便对OLE DB提供程序执行 链接服务器“LINKEDSERVERNAME”的“MSDASQL”。
或者:
Msg 7399,Level 16,State 1,Line 1
链接服务器“LINKEDSERVERNAME”的OLE DB提供程序“MSDASQL”报告错误。提供商未提供有关错误的任何信息 Msg 7330,Level 16,State 2,Line 1
无法从OLE DB提供程序“MSDASQL”获取链接服务器“LINKEDSERVERNAME”的行。
有人可以解释可能是什么问题,因为目前我不知道它在ODBC,链接服务器或Firebird方面是否存在问题......
谢谢。
答案 0 :(得分:0)
问题出在Firebird方面。我使用了Flamerobin客户端,它产生了IBPP:SQLException