用command 可以更新数据吗

zju_wale 2002-05-12 05:04:42
我写了一个存储过程,在sql analyzer中可以成功执行,但用vbscritpt的ado.command
总是不能更新、删除数据,请问怎样才能成功!

CREATE PROCEDURE card_add
@number varchar(12),
@password varchar(8),
@userid varchar(50),
@outcheck char(3) output
AS
declare @months tinyint,@deadline datetime,@passwd varchar(8)
set @userid=ltrim(rtrim(@userid))
set @number=ltrim(rtrim(@number))
set @password=ltrim(rtrim(@password))

--insert into card (userid,number,[password],months,[money]) values ('qq','1111','1',1,1)
delete from card where number='123'
--insert into card (userid,number,[password],months,[money]) values (@userid,@number,@password,1,1)
if exists(select * from card where number=@number and userid is null)--存在这卡
begin
select @months=months, @passwd=[password] from card where number=@number

if @password<>@passwd --密码不符
select @outcheck='pwd'
else
begin

select @deadline=deadline from users where userid=@userid

if @deadline<getdate() or @deadline is null
begin
begin transaction
update users
set deadline=dateadd(month,@months,getdate())
where userid=@userid

update card
set userid=@userid,dates=getdate()
where number=@number
commit transaction
end
else
begin
begin transaction
update users set deadline=dateadd(month,@months,deadline) where userid=@userid
update card set userid=@userid,dates=getdate() where number=@number
commit transaction
end
select @outcheck='suc'


end
end
else --不存在这card
select @outcheck='not'
GO


asp中代码:


Set Comm=Server.CreateObject("ADODB.Command")
Comm.ActiveConnection=conn
Comm.CommandText="card_add"
Comm.CommandType=4 'AdCmdStoredProc


'command.CreateParameter (Name, Type, Direction, Size, Value) adsmallint 2 adinteger 3 adcurrency 6 addate 7 adboolean 11 dchar 129 advarchar 200


Set p1=Comm.CreateParameter("number",200,1,12,CStr(number) )
Comm.Parameters.Append p1
Set p1=Comm.CreateParameter("password",200,1,8,CStr(password) )
Comm.Parameters.Append p1
Set p1=Comm.CreateParameter("userid",200,1,50,CStr(userid))
Comm.Parameters.Append p1
Set p1=Comm.CreateParameter("outcheck",129,2,3)
Comm.Parameters.Append p1

Comm.Execute



...全文
77 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinatorpedo 2002-05-12
  • 打赏
  • 举报
回复
还有一点忘了你没有用objConn=server.CreateObject("ADODB.Connection")
没有建立联接起来就要改数据肯定不行拉

在最前面要加上这句话
chinatorpedo 2002-05-12
  • 打赏
  • 举报
回复
asp中的代码有问题!执行Comm.Execute后要来一个update
数据才会真正更新!
我不用command
我喜欢先用 objConn=server.CreateObject("ADODB.Connection")
然后打开这个联接再用redordset方便 多了
popcode 2002-05-12
  • 打赏
  • 举报
回复
可以啊。
超级大笨狼 2002-05-12
  • 打赏
  • 举报
回复
你的number之类的变量得到了吗?response出来试试?出错信息是什么?
关键不在于你错在哪里,而是你采取什么手段调试。
更新、删除数据大家都不常用这个办法,还是用recordset对象比较稳妥。
sduwjr 2002-05-12
  • 打赏
  • 举报
回复
回答是肯定的
秋风ss落叶 2002-05-12
  • 打赏
  • 举报
回复
代码很长!

你要注意一下传值的参数,返回值等

28,409

社区成员

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

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