|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件静态媒介:良多网页计划者大概都面对过如许一个成绩:计划一个表单让利用者输出以后,将利用者所输出的内容创建到数据库中,但是一但利用者输出的内容有分歧型态(数字字段却输出笔墨)的情形大概利用者所输出的内容不切合体系办理者的请求时,却没法提示利用者那里堕落以便让利用者从头填写表单,常人也许会利用扫瞄器的前进按钮回到表单页然后将填错的材料重填,可是假如到场数据库的程序与表单内容放在统一个程序以内的话,那利用者就没无机会回上一页重填材料了。年夜多半人一般是用Session办理这个成绩,但这又就带来了一个成绩:Session占体系资本很年夜!办理上述成绩有两种办法:一种是经由过程JavaScript利用前端把持,另外一种是经由过程ASP子程序来作服务器端把持。上面我就是先容的怎样利用经由过程ASP子程序来作服务器端把持来完成。在数据库的利用上也跟以往分歧,我这一次利用的是SQL7.0为人人作先容,上面程序所保持的数据库是SQL7.0中所内建的Pubs数据库,利用者不用从头创建,只需将预存程序创建在Pubs数据库上便可。
附注:上面的程序是我在为一个超市计划网页时编写的,因为这里次要是先容编写技能,以是我不再举行编整,不外读者能够依据必要对内里的内容举行修正。
BookStore.asp
<%@TRANSACTION=RequiredLANGUAGE="VBScript"%>
<%Response.Buffer=True%>
<!--#includefile=adovbs.inc-->
<%
注解:创建数据库保持:
SETConn=Server.CreateObject("ADODB.Connection")
注解:使用数据库保持的ConnectionString属性指定欲保持的数据库信息,在这里我们将数据库驱动程序设为SQLServer,数据库服务器称号为Jackal,数据库为Pubs数据库:
Conn.ConnectionString="driver={SQLServer}"&_
";SERVER=Jackal;UID=sa;PWD=;DATABASE=pubs"
注解:以open办法开启数据库:
Conn.Open
注解:创建Command工具;以ActiveConnection属性来保持数据库保持工具Conn:
SetCmd=Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection=Conn
注解:创建材料汇合工具;SETrsForm=Server.CreateObject("ADODB.RecordSet"),界说strFeedBack,strTitle字符串变量,分离代表表单毛病信息和数据库毛病信息:
DIMstrFeedBack,strTitle
注解:界说表单变量:
DIMstor_id,stor_name,stor_address,city,state,zip
%>
<html>
<head>
<scriptRUNAT="Server"LANGUAGE="VBScript">
上面就要编写RetrieveForm子程序了,其感化是吸收由表单所供应的材料:
SUBRetrieveForm(stor_id)
注解:搭配Cmd.ActiveConnection=Conn利用,并将commamndtype属性设定为adCmdStoredProc,暗示commandtext为预存程序:
Cmd.CommandType=adCmdStoredProc
Cmd.CommandText="proc_retrieve_store"
注解:以Parameters.Append的办法到场一个参数"stor_id"以作为预存程序的输出参数之用:
Cmd.Parameters.Appendcmd.CreateParameter("stor_id",adChar,adParamInput,4,stor_id)
注解:实行预存程序:
SETrsForm=Cmd.Execute
注解:删除stor_id参数:
Cmd.Parameters.Delete(0)
ENDSUB
完成上一步骤,下一步就是编写SetFromForm子程序,其感化是将利用者之前所输出的表单值回写至表单:
SUBSetFromForm
注解:掏出表单中各字段值并传给指定变量:
stor_id=Request.Form("stor_id")
stor_name=Request.Form("stor_name")
stor_address=Request.Form("stor_address")
city=Request.Form("city")
state=Request.Form("state")
zip=Request.Form("zip")
ENDSUB
(注解:从材料汇合工具中将值掏出并显现在表单中,strName代表表单称号,intSize代表表单巨细,intMax代表表单所同意输出最年夜字段长度,Server.HTMLEncode(strValue)代表表单内容。)
SubShowText(strName,strValue,intSize,intMax)
Response.Write"<INPUTTYPE=TextNAME="&strName&_
"ID="&strName&_
"onFocus=select()"&_
"SIZE="&intSize&_
"MAXLENGTH="&intMax&_
"VALUE="&chr(34)&Server.HTMLEncode(strValue)&chr(34)&">"
EndSub
上面是EditForm子程序,其感化是更新数据区段:
FunctionEditForm()
注解:界说毛病信息字符串变量:
DIMstrErr
strErr=""
IFNOTLen(Request("stor_id"))>0THEN
strErr=strErr&"请输出编号.<BR>"
ENDIF
IFNOTLen(Request("stor_name"))>0THEN
strErr=strErr&"请输出称号.<BR>"
ENDIF
IFNOTLen(Request("stor_address"))>0THEN
strErr=strErr&"请输出地点.<BR>"
ENDIF
IFNOTLen(Request("city"))>0THEN
strErr=strErr&"请输出乡村名.<BR>"
ENDIF
IFNOTLen(Request("state"))>0THEN
strErr=strErr&"请输出省名.<BR>"
ENDIF
注解:将表单毛病信息传回EditForm:
EditForm=strErr
EndFunction
上面是InsertForm子程序:
FunctionInsertForm()
DIMstrSQL
strSQL="proc_insert_store"
注解:以Command工具的CommandText属性指定对数据库下达的命令是经由过程proc_insert_store这个预存程序来完成:
Cmd.CommandText=strSQL
注解:以Command工具的CommandType属性决意对数据库哀求的型态是为预存程序:
Cmd.CommandType=adCmdStoredProc
注解:呼唤SetParms子程序:
SetParms
注解:以Command工具的Execute办法实行预存程序:
Cmd.Execute
注解:将SetParms子程序中所附加的msg参数传回给strMsg毛病信息字符串变量:
strMsg=cmd.Parameters("msg")
InsertForm=strMsg
EndFunction
接着是创建setparms子程序:
SubSetParms()
注解:以Command的Append办法将Parameter工具加到Parameters工具汇合中,作为预存程序的输出参数之用这是为了获得表单的内容值,只要在更新材料或到场材料时才必需呼唤这段子程序:
cmd.Parameters.Appendcmd.CreateParameter("RETURN_VALUE",adInteger,adParamReturnValue)
cmd.Parameters.Appendcmd.CreateParameter("id",adChar,adParamInput,4,stor_id)
cmd.Parameters.Appendcmd.CreateParameter("stor_name",adVarChar,adParamInput,40,stor_name)
cmd.Parameters.Appendcmd.CreateParameter("stor_address",adVarChar,adParamInput,40,stor_address)
cmd.Parameters.Appendcmd.CreateParameter("city",adVarChar,adParamInput,20,city)
cmd.Parameters.Appendcmd.CreateParameter("state",adChar,adParamInput,2,state)
cmd.Parameters.Appendcmd.CreateParameter("zip",adChar,adParamInput,5,zip)
cmd.Parameters.Appendcmd.CreateParameter("msg",adVarChar,adParamInput,60,"")
EndSub
上面是UpdateForm子程序:
FunctionUpdateForm(intID)
注解:以Command工具的CommandText属性指定对数据库下达的命令是经由过程pr</p>优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件 |
|