작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
204
0
ALTER PROCEDURE [dbo].[spLogin]
@accountid text,
@password text,
@ret int OUTPUT
AS
DECLARE @userIdCount int;
SELECT @userIdCount = COUNT(*)
FROM [dbo].[Accounts]
WHERE account like @accountid;
if (@userIdCount = 0)
BEGIN
SELECT @ret = 0;
END
else
BEGIN
DECLARE @LOGIN_OK int = 1;
DECLARE @LOGIN_ID_FAILED int = 2;
DECLARE @LOGIN_LOGGEDIN int = 3;
DECLARE @checkCount int;
DECLARE @loggedin tinyint;
SELECT @checkCount = COUNT(*)
FROM [dbo].[Accounts]
WHERE account like @accountid AND password like @password;
SELECT @loggedin = loggedin
FROM [dbo].[Accounts]
WHERE account like @accountid AND password like @password;
if (@checkCount > 0)
BEGIN
if (@loggedin > 0)
BEGIN
SELECT @ret = @LOGIN_LOGGEDIN;
END
else
BEGIN
SELECT @ret = @LOGIN_OK;
UPDATE [dbo].[Accounts] SET loggedin = 1 WHERE account like @accountid; --이곳이 실행되면 output값을 코드에서 받지못함.
END
END
else
BEGIN
SELECT @ret = @LOGIN_ID_FAILED;
END
END
RETURN @ret
답변 1
0
위 내용만으로는 저도 알 수 없습니다.
예전에 봤던 코드를 복원해서 일부 샘플을 보여드린 것이고
100% 완전하지 않기 때문에 부족한 기능이 있다면
ODBC + Stored Procedure 연동 문서를 찾으면서
스스로 MSDN이나 구글링을 하면서 채우셔야 합니다.
먼 기억으로는 실제로 SELECT 방식으로만 리턴해줬던 것 같기도 하네요.
(굳이 RET까지 필요하지 않았기 때문)
UPDATE문아래에서 select방식으로 리턴해줘도 받아오지 못하네요...
ALTER PROCEDURE [dbo].[spLogin]
@accountid text
AS
UPDATE Accounts SET loggedin = 1 WHERE account like @accountid;
SELECT account FROM [dbo].[Accounts] WHERE account like @accountid;
RETURN
단순하게 바꾸어봐도 update는실행이되지만 select한 값은 받아오지못하네요..
그렇군요 . 다시한번 시도해보겠습니다.