高手帮忙解释一个SQL的储存过程!

[复制链接]
查看11 | 回复3 | 2007-9-9 01:05:40 | 显示全部楼层 |阅读模式
存储过程:
CREATE procedure Str_Update
@TableName varchar(130),
@PrimaryKey varchar(130),
@ProcedureName varchar(130)
as
set nocount on
declare @maxcol int,
@TableID int
set @TableID = object_id(@TableName)
select @MaxCol = max(colorder)
from syscolumns
where id = @TableID
select 'Create Procedure ' + rtrim(@ProcedureName) as type,0 as colorder
into #TempProc
union
select convert(char(35),'@' + syscolumns.name)
+ rtrim(systypes.name)
+ case when rtrim(systypes.name) in
('binary','char','nchar','nvarchar','varbinary','varchar') then '(' + rtrim
(convert(char(4),syscolumns.length)) + ')'
when rtrim(systypes.name) not in
('binary','char','nchar','nvarchar','varbinary','varchar') then ' '
end
+ case when colorder'sysname'
union
select 'AS',@maxcol + 1 as colorder
union
select 'UPDATE ' + @TableName,@maxcol + 2 as colorder
union
select 'SET',@maxcol + 3 as colorder
union
select syscolumns.name + ' = @' + syscolumns.name
+ case when colorder@PrimaryKey and systypes.name
'sysname'
union
select 'WHERE ' + @PrimaryKey + ' = @' + @PrimaryKey,(2 * @maxcol) + 4 as
colorder
order by colorder

select type from #tempproc order by colorder
drop table #tempproc
GO

调用代码:(SQL连接省去了)
Set Cmd=Server.CreateObject("Adodb.Command")'创建command对象
Cmd.ActiveConnection=conn
Cmd.CommandText="Woai_Update"
'调用存储过程名称
Cmd.CommandType=4
cmd.prepared=True
Cmd.Parameters.Append Cmd.CreateParameter("@TableName",202,1,130,"Str_User")
'示例传递给存储过程一个年份,类型是integer,对应存储过程中的@fyear变量
Cmd.Parameters.Append Cmd.CreateParameter("@PrimaryKey",202,1,130,"ID")
'示例传递给存储过程一个中文字符,类型是varchar,长度为50,对应存储过程中的@myname变量
Cmd.Parameters.Append Cmd.CreateParameter("@ProcedureName",202,1,130,"Jsq")
'示例传递给存储过程一个中文字符,类型是varchar,长度为50,对应存储过程中的@myname变量
Set Rs=Cmd.Execute
While Not Rs.Eof
'Response.Write " "&Rs(0)&"|"&Rs(1)&" "
Rs.MoveNext
Wend

Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
Set Cmd = Nothing

我调用 这个储存过程 想实现 Str_User表中Jsq字段能通过 储存过程传递的值更新数据库
然后 读取出来 请问代码应该怎么写!!!!
请高手帮忙!!!!!

还有不太明白
Cmd.Parameters.Append Cmd.CreateParameter("@TableName",202,1,130,"Str_User")
中 202,1 这是什么意思
回复

使用道具 举报

千问 | 2007-9-9 01:05:40 | 显示全部楼层
up
回复

使用道具 举报

千问 | 2007-9-9 01:05:40 | 显示全部楼层
p.Append cm.CreateParameter("参数名称",类型,方向,大小)
202,1
advarchar 202 未编码字符串变量值
回复

使用道具 举报

千问 | 2007-9-9 01:05:40 | 显示全部楼层
名称值 整数值 功能

adParamInput 1 允许数据输入至该参数当中
adParamOutput 2 允许数据输出至该参数当中
adParamInputOutput 3 允许数据输入、输出至该参数当中
adparamReturnValue 4 允许从一子程序中返回数据至该参数当中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行