用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



...全文
29 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
代码很长!

你要注意一下传值的参数,返回值等
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2002-05-12 05:04
社区公告
暂无公告