**************************************************************************
普通的存储过程查询
*************************************************************************
CREATE PROCEDURE dbo.tables
@tablename varchar(50), --传数据表名
@textname varchar(5000), --字段参数
@searchs varchar(5000), --查询条件
@orders varchar(50) --排序字段条件
AS
set nocount on
declare @sqlstr varchar(1000)
BEGIN
if @textname <> '' --如果传入的检索字段不为空,则检索指定的字段
set @sqlstr = 'select ' + @textname + ' from '+ @tablename
else
set @sqlstr = 'select * from '+ @tablename
if @searchs <> '' --如果传入的过滤条件不为空,则检索指定条件的sql
set @sqlstr = @sqlstr + ' where ' + @searchs
if @orders <> '' --如果传入的排序字段不为空,则按指定的字段排序
set @sqlstr = @sqlstr + ' order by ' + @orders
exec(@sqlstr) --执行检索
END
if @@ERROR = 0
RETURN 0
GO
*********************************************************************************
asp调用方法
*************************************************************************************
dim searchs,textname,orders,tablename
tablename="newstype"
textname=""
searchs="class=1"
orders="typeid desc"
'调用存储过程块
Set MyComm = Server.CreateObject("ADODB.Command")
with MyComm
.ActiveConnection = conn 'MyConStr是数据库连接字串
.CommandText = "tables" '指定存储过程名
.CommandType = 4 '表明这是一个存储过程
.Prepared = true '要求将SQL命令先行编译
.Parameters.append .CreateParameter("@tablename",200,1,40,tablename)
.Parameters.append .CreateParameter("@textname",200,1,40,textname)
.Parameters.append .CreateParameter("@searchs",200,1,40,searchs)
.Parameters.append .CreateParameter("@orders",200,1,40,orders)
Set rs = .Execute
end with