CREATE PROCEDURE [dbo].[sp_login]
@t_id NVARCHAR(30),
@t_pw NVARCHAR(30),
@returnString NVARCHAR(30) OUTPUT
AS
Begin
SET NOCOUNT ON
DECLARE @id nvarchar(30)
DECLARE @pw nvarchar(30)
DECLARE @uid int
SET @id = @t_id
SET @pw = @t_pw
SET @returnString = ''
IF (@id = '' AND @pw = '')
BEGIN
SET @returnString = 'กรุณาระบุ ชื่อผู้ใช้ และ รหัสผ่าน'
END
ELSE IF (@id = '')
BEGIN
SET @returnString = 'กรุณาระบุ ชื่อผู้ใช้'
END
ELSE IF(@pw = '')
BEGIN
SET @returnString = 'กรุณาระบุ รหัสผ่าน'
END
ELSE
IF EXISTS(select [test_id] from tbl_test WHERE [test_name]=@id AND test_pws=@pw)
--ถูกต้อง
BEGIN
SELECT @uid = [test_id] from tbl_test WHERE [test_name]=@id AND test_pws=@pw
SET @returnString = 'เข้าสู่ระบบด้วย ' + @uid
END
ELSE
--ผิด
BEGIN
SET @returnString = 'ข้อมูลเข้าสู่ระบบไม่ถูกต้อง'
END
SET NOCOUNT OFF
End
การเรียกใช้งาน ผมลองใช้ ASP เรียกใช้งานนะครับ จะได้ แบบนี้
ASP CODE
<%
Dim m_pwd,m_id
Dim oConn, oCmd, rs,sql,returnValue
เป็นการสร้าง Stored Procedure ให้ RETURN ค่า STRING ออกมานะครับ
ก่อนอื่นสร้าง TABLE กันก่อนครับ
CREATE TABLE [dbo].[tbl_test](
[test_id] [int] IDENTITY(1,1) NOT NULL,
[test_name] [nvarchar](20) NULL,
[test_pws] [nvarchar](20) NULL,
CONSTRAINT [PK_tbl_test] PRIMARY KEY CLUSTERED
(
[test_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
สร้างเพื่อใช้ในการทดสอบระบบ Login อย่างง่ายนะครับ
ถัดมาเรามาดูกานสร้าง SP กันครับ
CREATE PROCEDURE [dbo].[sp_login]
@t_id NVARCHAR(30),
@t_pw NVARCHAR(30),
@returnString NVARCHAR(30) OUTPUT
AS
Begin
SET NOCOUNT ON
DECLARE @id nvarchar(30)
DECLARE @pw nvarchar(30)
DECLARE @uid int
SET @id = @t_id
SET @pw = @t_pw
SET @returnString = ''
IF (@id = '' AND @pw = '')
BEGIN
SET @returnString = 'กรุณาระบุ ชื่อผู้ใช้ และ รหัสผ่าน'
END
ELSE IF (@id = '')
BEGIN
SET @returnString = 'กรุณาระบุ ชื่อผู้ใช้'
END
ELSE IF(@pw = '')
BEGIN
SET @returnString = 'กรุณาระบุ รหัสผ่าน'
END
ELSE
IF EXISTS(select [test_id] from tbl_test WHERE [test_name]=@id AND test_pws=@pw)
--ถูกต้อง
BEGIN
SELECT @uid = [test_id] from tbl_test WHERE [test_name]=@id AND test_pws=@pw
SET @returnString = 'เข้าสู่ระบบด้วย ' + @uid
END
ELSE
--ผิด
BEGIN
SET @returnString = 'ข้อมูลเข้าสู่ระบบไม่ถูกต้อง'
END
SET NOCOUNT OFF
End
การเรียกใช้งาน ผมลองใช้ ASP เรียกใช้งานนะครับ จะได้ แบบนี้
ASP CODE
<%
Dim m_pwd,m_id
Dim oConn, oCmd, rs,sql,returnValue
m_id=trim(request("m_id"))
m_pwd=trim(request("m_pwd"))
adCmdStoredProc = 4
adinteger = 3
adParamInput = 1
adParamOutput = 2
adParamReturnValue = 4
advarwchar=200
Set oCmd = server.createobject("adodb.command")
With oCmd
.ActiveConnection = db
.CommandType = adCmdStoredProc
.CommandText = "sp_login"
.Parameters.Append .CreateParameter("@m_id",advarwchar,adParamInput,20,m_id)
.Parameters.Append .CreateParameter("@m_pwd",advarwchar,adParamInput,20,m_pwd)
.Parameters.Append .CreateParameter("@returnString", adVarWChar, adParamOutput, 30, "")
.Execute,,adexecutenorecords
returnValue = .Parameters("@returnString").Value
End With
Set oCmd = Nothing
Response.write "RETURN VALUE : " & returnValue
response.Write "<hr />"
%>