国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP 3.0高級編程(四十二)_ASP教程

2024-05-04 11:03:55
字體:
來源:轉載
供稿:網友

推薦:用ASP實現網上考試系統
隨著互連網技術的發展網上教學將成為人們接受再教育和終身教育的主要形式。在網上學校中,人們可以不受時間和空間的限制,隨時隨地選學任何地方的任何課程。網上學校的發展對網上考試的發展提出

5. 返回值
對函數返回值的處理不同于存儲過程返回值的處理,這常常導致混淆。在函數中,經常是返回一個布爾值來表明函數運行的成功與否。
If SomeFunctionName() = True Then
' Function succeeded
但在調用一個存儲過程時,卻不能使用同樣的方法,因為存儲是用Execute方法運行的,同時返回一個記錄集。
Set rsAuthors = cmdAuthors.Execute
如果得不到一個返回值,如何確定是否已正確執行存儲過程?當發生錯誤時,會報告錯誤,這樣就可使用前一章提供的錯誤處理代碼來處理錯誤。但對于一些非致命的邏輯錯誤怎么辦?
例如,考慮向employee表添加一個新職員的情形。你可能不想防止兩個職員同名的情況,但想注明這個情況。那么,可以使用一個返回值以表明是否已有同名的職員存在。存儲過程如下:
CREATE PROCEDURE usp_AddEmployee
@Emp_ID Char(9),
@FName Varchar(20),
@Minit Char(1),
@LName Varchar(30),
@Job_ID SmallInt,
@Job_Lvl TinyInt,
@Pub_ID Char(4),
@Hire_Date Datetime
AS
BEGIN
DECLARE @Exists Int -- Return value

-- See if an employee with the same name exists
IF EXISTS(SELECT *
FROM Employee
WHERE FName = @FName
AND MInit = @MInit
AND LName = @LName)
SELECT @Exists = 1
ELSE
SELECT @Exists = 0

INSERT INTO Employee (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代碼如下:
<!-- #INCLUDE FILE="../include/Connection.asp" -->
<%
Dim cmdEmployee
Dim lngRecs
Dim lngAdded

Set cmdEmployee = Server.CreateObject("ADODB.Command")

' Set the properties of the command
With cmdEmployee
.ActiveConnection = strConn
.CommandText = "usp_AddEmployee"
.CommandType = adCmdStoredProc

' Create the parameters
' Notice that the return value is the first parameter
.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)

' Set the parameter values
.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")

' Run the stored procedure
.Execute lngRecs, , adExecuteNoRecords

' Extract the return value
lngAdded = .Parameters("RETURN_VALUE")
End With

Response.Write "New employee added.<P>"
If lngAdded = 1 Then
Response.Write "An employee with the same name already exists."
End If

Set cmdEmployee = Nothing
%>
需要重點注意,返回值應當作為集合中第一個參數被創建。即使返回值并不作為一個參數出現在存儲過程中,總是Parameters集合中的第一個Parameters。

分享:ASP 3.0高級編程(三十六)
第8章 ADO基礎在本書前7章中,已經講述了ASP的有關內容,以及ASP如何為Web站點帶來動態的內容。已經見到其腳本程序允許自定義Web頁面,使我們能夠構建功能更為強大的ASP頁面。現在,將研究ASP

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临洮县| 莱芜市| 盐亭县| 彰化县| 海安县| 两当县| 玛曲县| 乌兰县| 灌阳县| 香格里拉县| 农安县| 基隆市| 新巴尔虎右旗| 罗山县| 伊宁市| 闸北区| 磐安县| 新泰市| 邵东县| 江永县| 特克斯县| 滨海县| 渝中区| 岚皋县| 漯河市| 尼勒克县| 南召县| 富民县| 泸定县| 香河县| 延吉市| 夏邑县| 进贤县| 九寨沟县| 临洮县| 新化县| 手游| 临颍县| 当雄县| 丰台区| 江山市|