首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

带参表值函数失误

2012-12-22 
带参表值函数出错。我有一个函数f_getlie3(@riqi date)这个里面用到了注册的远程服务器、exec sp_addlinkeds

带参表值函数出错。
我有一个函数
f_getlie3(@riqi date)
这个里面用到了注册的远程服务器、
exec sp_addlinkedserver 'kqdb','','SQLOLEDB','sun-open' 

调用select * from f_getlie3('2012-11-08') 结果正常。

但是
declare @riqi date
set @riqi='2012-11-08'
select * from f_getlie3(@riqi)
显示错误结果:

链接服务器"kqdb"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "未指定的错误"。
链接服务器"kqdb"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "比例无效。"。
消息 7322,级别 16,状态 2,第 3 行
向链接服务器 "kqdb" 的 OLE DB 访问接口 "SQLNCLI10" 提供参数信息时失败。
警告: 聚合或其他 SET 操作消除了 Null 值。

请问是什么原因?

[最优解释]
每次调用连接服务,关闭一次,再打开。
[其他解释]
加个try..catch,在catch里执行远程连接服务,注意用完就关闭连接,节省资源
[其他解释]

给个更直观的例子,请大家帮忙看下




create function f_test(@riqi date)
returns table
as
return
(
select *  from [kqdb].[zykj].dbo.[carddata] where carddate>@riqi
)


select * from f_test('2012-11-08')
--结果正常


declare @ri date
set @ri='2012-11-08'
select * from f_test(@ri)
/**
链接服务器"kqdb"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "未指定的错误"。
链接服务器"kqdb"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "比例无效。"。
消息 7322,级别 16,状态 2,第 3 行
向链接服务器 "kqdb" 的 OLE DB 访问接口 "SQLNCLI10" 提供参数信息时失败。
**/



[其他解释]
不能沉,有大侠出现吗?
[其他解释]
引用:
每次调用连接服务,关闭一次,再打开。


求码,找了半天居然没找到关闭链接服务器语句。

热点排行