如何在ASP中调用SQL自定义函数?

putinit 2006-03-22 04:01:51
在SQL数据库中定义一个函数f_getid(),有输入参数baokaoyear,和输出参数ID,使用
ASP中调用SQL中的存储过程的方法,代码如下:

conntol = "driver={SQL Server};server=127.0.0.1;uid=sa;pwd=;database=baokao"
set conn1=server.createobject("adodb.connection")
conn1.open conntol

Set cmd=server.CreateObject("Adodb.Command")
cmd.ActiveConnection = conn1
cmd.CommandType = 4
cmd.commandText = "f_getid"
cmd("@baokaoyear") = 2006
cmd.execute()
rv =cmd("@id")
response.write "rv:"&rv '显示返回值

执行到rv =cmd("@id")时出错:

ADODB.Command 错误 '800a0cc1'

在对应所需名称或序数的集合中,未找到项目。

/reg.asp,行232



求解!!!或是更好的方法!!!
...全文
293 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
putinit 2006-03-22
  • 打赏
  • 举报
回复
将获取返回值的语句改为

rv=cmd("@return_value")

执行正常,结果正确。。

感谢各位的支持!!!

putinit 2006-03-22
  • 打赏
  • 举报
回复
自定义函数是用于在表中查找最小的编号并自动产生编号,代码如下:
CREATE function f_getid(@baokaoyear int)
returns int
as
begin
declare @id int
if not exists(select 1 from BMK where BMH=1 and baokaoyear=@baokaoyear)
set @id=1
else
begin
select @id=max(BMH) from BMK where baokaoyear=@baokaoyear
if @id is null
set @id=1
else
begin
declare @id1 int
select @id1=min(BMH) from BMK a where BMH<>@id and not exists(select 1 from BMK where BMH=a.BMH+1 and baokaoyear=@baokaoyear) and baokaoyear=@baokaoyear
if @id1 is not null set @id=@id1
set @id=@id+1
end
end
lb_re:
return @id
end


使用上面的方法还是出错,请各位再帮帮忙!!
levin_2008 2006-03-22
  • 打赏
  • 举报
回复
一楼
lizheng_hn 2006-03-22
  • 打赏
  • 举报
回复
应改为pwd=''或pwd=""试试看
  • 打赏
  • 举报
回复
同一楼
sky0120 2006-03-22
  • 打赏
  • 举报
回复
'使用Command对象获取存储过程的返回参数
Set Cmd=Server.CreateObject("ADODB.Command")
Set Cmd.ActiveConnection=myconn Cmd.CommandTimeOut=30 '设置Command对象的超时时间为30秒
Cmd.CommandType=4 Cmd.CommandText="InfoAdd"

'设置Cmd对象的参数
Cmd.Parameters.Append Cmd.CreateParameter("Title",200,1,100,title)
Cmd.Parameters.Append Cmd.CreateParameter("Keywd",200,1,100,keywd)
Cmd.Parameters.Append Cmd.CreateParameter("Body",201,1,-1,content)
Cmd.Execute()

IsValid=Cmd.Parameters("valid")'获取返回值
lonaerd 2006-03-22
  • 打赏
  • 举报
回复
???看不懂!!!!

SQL里面的自定义函数是用来做什么的?不就是要么直接为sql语句服务,要么为存储过程服务。

你在ASP里面直接调用函数干什么?

楼主应该创建存储过程,在存储过程里面调用自定义函数,然后再调用存储过程

28,391

社区成员

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

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