如何调用SQL的自定义函数??//

rabbitisme 2004-04-22 05:42:24
我在SQL里的自定义函数如下;
CREATE function f_getfullname(@id varchar(10))
returns varchar(5000)
as
begin
declare @re varchar(5000),@top_id varchar(10)
select @re=ltrim(rtrim(Region)),@top_id=top_id
from sy_area where id=@id
while @@rowcount>0 and @top_id<>'0'
select @re=ltrim(rtrim(Region))+@re,@top_id=top_id
from sy_area where id=@top_id
return(@re)
end

在ASP页面是这样调用的:
' set cmd=server.CreateObject("adodb.command")
' set cmd.ActiveConnection=conn
' cmd.CommandType=adCmdText
' cmd.CommandText ="{=call dbo.f_getfullname(?,?)}"
' cmd.Parameters.Append cmd.CreateParameter("@id",adVarChar,adParamInput,10)
' cmd("@id")=rs("work_site")
' cmd.Parameters.Append cmd.CreateParameter("@re",adVarChar,adParamOutput,5000)
' cmd.Execute()
' region=cmd("@re")

可是提示错误:
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
...全文
234 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rabbitisme 2004-04-23
  • 打赏
  • 举报
回复
set rss=server.CreateObject("adodb.recordset")
sqlstr="select newdb1.dbo.f_getfullname('"&rs("work_site")&"') as region"
set rss=conn.execute(sqlstr)
response.Write(rss("region"))
rss.close
set rss=nothing

就可以解决了~~~~OK

:)我的问题已经OK了~~~
hhzh426 2004-04-23
  • 打赏
  • 举报
回复
函数与存储过程的调用不一样
只能用 select f_getfullname(id的值) as ID的方法获取
crystal001 2004-04-23
  • 打赏
  • 举报
回复
....
rabbitisme 2004-04-23
  • 打赏
  • 举报
回复
上面不就是例子了吗?

我都把SQL里面的函数贴出来了呀??
而且在ASP里调用的语句也写了呀
loveweb 2004-04-22
  • 打赏
  • 举报
回复
给个例子
select type,dbo.MyFc_1(type) from aaa group by type
dbo.MyFc_1(type)就是自己定义的函数

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧