ASP 3.0高级编程(四十二)

紫藤萝的梦想呐

紫藤萝的梦想呐

2016-01-29 19:17

ASP 3.0高级编程(四十二),ASP 3.0高级编程(四十二)
  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
展开更多 50%)
分享

猜你喜欢

ASP 3.0高级编程(四十二)

ASP
ASP 3.0高级编程(四十二)

ASP 3.0高级编程(四十)

ASP
ASP 3.0高级编程(四十)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP 3.0高级编程(十二)

ASP
ASP 3.0高级编程(十二)

ASP 3.0高级编程(四十四)

ASP
ASP 3.0高级编程(四十四)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

ASP 3.0高级编程(四十三)

ASP
ASP 3.0高级编程(四十三)

ASP 3.0高级编程(四十五)

ASP
ASP 3.0高级编程(四十五)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《巫师3 狂猎》DLC三把弩获取地点解析攻略

《巫师3 狂猎》DLC三把弩获取地点解析攻略

ASP.Net调试之三板斧:第一招

ASP.Net调试之三板斧:第一招
下拉加载更多内容 ↓