|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。编程|初级5.前往值
对函数前往值的处置分歧于存储历程前往值的处置,这经常招致搅浑。在函数中,常常是前往一个布尔值来标明函数运转的乐成与否。
IfSomeFunctionName()=TrueThen
Functionsucceeded
但在挪用一个存储历程时,却不克不及利用一样的办法,由于存储是用Execute办法运转的,同时前往一个纪录集。
SetrsAuthors=cmdAuthors.Execute
假如得不到一个前往值,怎样断定是不是已准确实行存储历程?当产生毛病时,会呈报毛病,如许便可利用前一章供应的毛病处置代码来处置毛病。但关于一些非致命的逻辑毛病怎样办?
比方,思索向employee表增加一个新人员的情况。你大概不想避免两个人员同名的情形,但想说明这个情形。那末,可使用一个前往值以标明是不是已有同名的人员存在。存储历程以下:
CREATEPROCEDUREusp_AddEmployee
@Emp_IDChar(9),
@FNameVarchar(20),
@MinitChar(1),
@LNameVarchar(30),
@Job_IDSmallInt,
@Job_LvlTinyInt,
@Pub_IDChar(4),
@Hire_DateDatetime
AS
BEGIN
DECLARE@ExistsInt--Returnvalue
--Seeifanemployeewiththesamenameexists
IFEXISTS(SELECT*
FROMEmployee
WHEREFName=@FName
ANDMInit=@MInit
ANDLName=@LName)
SELECT@Exists=1
ELSE
SELECT@Exists=0
INSERTINTOEmployee(emp_id,fname,minit,lname,
job_id,job_lvl,pub_id,hire_date)
VALUES(@Emp_Id,@FName,@MInit,@LName,@Job_ID,
@Job_Lvl,@Pub_ID,@Hire_Date)
RETURN@Exists
END
该历程起首反省是不是有同名的人员存在,并据此设定响应的变量Exists,若存在同名,就设为1,不然为0。然后将该人员加到表中,同时把Exists的值作为前往值前往。
注重只管前往了一个值,但并未将其声明为存储历程的参数。
挪用该历程的ASP代码以下:
<!--#INCLUDEFILE="../include/Connection.asp"-->
<%
DimcmdEmployee
DimlngRecs
DimlngAdded
SetcmdEmployee=Server.CreateObject("ADODB.Command")
Setthepropertiesofthecommand
WithcmdEmployee
.ActiveConnection=strConn
.CommandText="usp_AddEmployee"
.CommandType=adCmdStoredProc
Createtheparameters
Noticethatthereturnvalueisthefirstparameter
.Parameters.Append.CreateParameter("RETURN_VALUE",adInteger,_
adParamReturnValue)
.Parameters.Append.CreateParameter("@Emp_id",adChar,adParamInput,9)
.Parameters.Append.CreateParameter("@fname",adVarWChar,adParamInput,20)
.Parameters.Append.CreateParameter("@minit",adChar,adParamInput,1)
.Parameters.Append.CreateParameter("@lname",adVarWChar,adParamInput,30)
.Parameters.Append.CreateParameter("@job_id",adSmallInt,adParamInput)
.Parameters.Append.CreateParameter("@job_lvl",adUnsignedTinyInt,adParamInput)
.Parameters.Append.CreateParameter("@pub_id",adChar,adParamInput,4)
.Parameters.Append.CreateParameter("@hire_date",adDBTimeStamp,_
adParamInput,8)
Settheparametervalues
.Parameters("@Emp_id")=Request.Form("txtEmpID")
.Parameters("@fname")=Request.Form("txtFirstName")
.Parameters("@minit")=Request.Form("txtInitial")
.Parameters("@lname")=Request.Form("txtLastName")
.Parameters("@job_id")=Request.Form("lstJobs")
.Parameters("@job_lvl")=Request.Form("txtJobLevel")
.Parameters("@pub_id")=Request.Form("lstPublisher")
.Parameters("@hire_date")=Request.Form("txtHireDate")
Runthestoredprocedure
.ExecutelngRecs,,adExecuteNoRecords
Extractthereturnvalue
lngAdded=.Parameters("RETURN_VALUE")
EndWith
Response.Write"Newemployeeadded.<P>"
IflngAdded=1Then
Response.Write"Anemployeewiththesamenamealreadyexists."
EndIf
SetcmdEmployee=Nothing
%>
必要重点注重,前往值应该作为汇合中第一个参数被创立。即便前往值其实不作为一个参数呈现在存储过程当中,老是Parameters汇合中的第一个Parameters。</p>[1][2][3]下一页
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|