在ASP中,把以前用select写的东东换成存储过程(SQL Server),应该怎么做?
在ASP中,把以前用select写的东东换成存储过程(SQL Server),应该怎么做?
谢谢
问题点数:25、回复次数:15Top
1 楼ChinaOk(农村表哥)回复于 2002-04-24 09:16:13 得分 5
看看关于存储过程的书。一般的sql书上都有。讲太多了。
不过sql还是一样的。只是变量加了个@,调用方式也不一样了。Top
2 楼Sylix(Sylix)回复于 2002-04-24 09:23:48 得分 0
谢谢ChinaOK(授人以鱼,不如授人以渔,
怎么改成存储过程呢?
如一般的select语句:
select * From aaa
Top
3 楼playmud((猪头流氓)(抵制日货)(热烈庆祝火箭输球))回复于 2002-04-24 09:30:47 得分 2
CREATE PROCEDURE sfaaa
as
select * from aaa
go
Top
4 楼Sylix(Sylix)回复于 2002-04-24 09:38:15 得分 0
thanks,怎么调用呢?Top
5 楼Sylix(Sylix)回复于 2002-04-24 09:39:44 得分 0
怎么移动数据等,象程序还需要修改哪些部分,谢谢Top
6 楼fengdu(潜心闭关修行中,明年再上CSDN)回复于 2002-04-24 09:43:25 得分 3
USE pubs
GO
CREATE PROCEDURE allaaa_info
AS
select * From aaa
GO
不过select * 这样不太好。至少也应该确定取的数量和字段(万一表太大,即使cache下来,CPU一样拖慢)
Top
7 楼Sylix(Sylix)回复于 2002-04-24 09:45:29 得分 0
我用:
set rs=server.createObject("adodb.recordset")
rs.open "exec 存储过程名 参数1 参数2 ...",conn,0,1
Top
8 楼Sylix(Sylix)回复于 2002-04-24 09:55:17 得分 0
谢谢 fengdu(fengdu.net 海涛) ,
具体的调用有什么不同呢?Top
9 楼duansoft(duansoft)回复于 2002-04-24 10:39:44 得分 0
哪位高手能指教一下?Top
10 楼duansoft(duansoft)回复于 2002-04-24 12:17:37 得分 0
哪位高手能指教一下?
Top
11 楼Sylix(Sylix)回复于 2002-04-24 12:27:46 得分 0
哪位高手知道具体怎么调用?谢谢Top
12 楼beyond_xiruo(CorruptionException)回复于 2002-04-24 13:46:30 得分 5
使用存储过程完全可以看书!
这里有一个例子!
http://www.csdn.net/expert/topic/640/640449.xml?temp=.3587152Top
13 楼wangfei2428(龙飞)回复于 2002-04-24 14:29:20 得分 5
(文件adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):
安装SQL Server后,数据库pubs中自带存储过程byroyalty,语句为(@percentage就是输入参数):
Alter PROCEDURE byroyalty @percentage int
AS
select au_id from titleauthor
where titleauthor.royaltyper = @percentage
ASP源程序:
<% @LANGUAGE = VBScript %
<!--#include file="adovbs.inc"--
<%
Response.Expires = 0
Dim Cnn, objRS,strConn,objCmd, objParam
Const strIn = 30 '存储过程的输入参数,为简化程序, 直接设置该值.
' 建立连接
Set Cnn = Server.CreateObject("ADODB.Connection")
strConn ="Provider=sqloledb;" & _
"Data Source=16.62.5.8;Initial Catalog=pubs;User Id=sa;Password=;"
Cnn.Open strConn
' 创建Command对象
Set objCmd = Server.CreateObject("ADODB.Command")
objCmd.CommandText = "byroyalty" '存储的过程名
objCmd.CommandType = adCmdStoredProc '将 CommandText 作为存储过程名进行计算
Set objCmd.ActiveConnection = Cnn
'创建并定义参数
Set objParam = objCmd.CreateParameter
("@percentage", adInteger, adParamInput, 4,strIn)
objCmd.Parameters.Append objParam
Set objRS = objCmd.Execute()
%
<HTML
<BODY
下面输出结果, 输入参数为:
<%= objCmd.Parameters("@percentage") % .
<BR<BR au_id<Br
<%
While Not objRS.EOF
Response.Write Server.HTMLEncode(objRS("au_id")) & "<Br"
objRS.MoveNext
Wend
objRS.close: Cnn.close
Set objRS = Nothing: Set Cnn = Nothing
Set objParam = Nothing: Set objCmd = Nothing
%
</BODY
</HTML
Top
14 楼lois1(雁)回复于 2002-04-24 14:29:38 得分 5
以下是一段调用存储过程的代码,不过比较麻烦的。
<%
set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.commandText = "account"
set param=cmd.CreateParameter("usr_type",adVarChar,adParamInput,1,usr_type)
cmd.Parameters.append Param
set param=cmd.CreateParameter("type_id",adVarChar,adParamInput,12,type_id)
cmd.Parameters.append Param
set param=cmd.CreateParameter("prg_id",adVarChar,adParamInput,6,prg_id)
cmd.Parameters.append Param
set rs = cmd.Execute
%>
存储过程的名字是 “account”
usr_type、prg_id 是存储过程所需的参数。
参考书吧,书上的例子一般比较简单。
Top
15 楼duanfeng(段玉)回复于 2002-04-24 14:45:00 得分 0
thanks, 没有人用JavaScript么? 我改一下Top




