inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

스토어프로시저 질문

238

작성자 없음

작성한 질문수 0

0

스토어 프로시저 작성중 SELECT문만 썼을때에는 ouput값이 제대로 나오는데
 
if를 사용하여 update 또는 insert를 사용할경우 아웃풋값을 제대로 받아오지 못합니다.
(코드에서 output ret의 벨류를 받아오지못합니다.)
(SELECT만 사용할경우에는 잘받아옴.)
 
 
혹시 어떤 문제가있는지 알 수 있을까요?
 
 

 

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

 

MMORPG windows-server network

답변 1

0

Rookiss

위 내용만으로는 저도 알 수 없습니다.

예전에 봤던 코드를 복원해서 일부 샘플을 보여드린 것이고 
100% 완전하지 않기 때문에 부족한 기능이 있다면
ODBC + Stored Procedure 연동 문서를 찾으면서
스스로 MSDN이나 구글링을 하면서 채우셔야 합니다.

먼 기억으로는 실제로 SELECT 방식으로만 리턴해줬던 것 같기도 하네요.
(굳이 RET까지 필요하지 않았기 때문)

0

누구게

그렇군요 . 다시한번 시도해보겠습니다.

0

누구게

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한 값은 받아오지못하네요..

0

누구게

구글링하여 해결하였습니다!

0

Rookiss

오오 좋습니다 ㅎㅎ
히스토리 차원에서 해결 방법에 대한 내용들도 남겨주시면 좋겠네요 :)

0

누구게

한개의 스토어프로시저에서 여러개를 사용할때 SQLMoreResults  함수를 사용하여 다음 결과에대한 정보도 받아올수있습니다 :)

writeLock을 잡을때 꼭 empty 상태여야하는 이유?

0

63

2

Memory Pool에서 오버플로우 질문입니다.

0

94

2

포토폴리오 및 진로 관련하여 고민입니다.

0

168

1

포토폴리오 관련 고민입니다.

0

90

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

107

2

성능 테스트 결과

0

117

2

게임 서버 Stateful, Stateless 진로 고민

0

144

1

WaitOnAddress와 Sleep의 차이 질문

0

97

1

궁금한거 있습니다.

0

92

2

JobTimer 구동 스레드

0

116

2

TryPop() 동작 관련 질문

0

86

1

로드맵 C#서버 C++서버 방향성 질문

0

162

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

81

1

생명주기를 위한 의도적 복사

0

94

2

락프리의 실무에서 사용 질문

0

154

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

109

2

mutex와 sleep 차이점

0

133

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

167

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

102

1

공부법 관련해서

0

190

2

MakeShared 함수 관련

0

118

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

152

2

운영체제관련 질문입니다

0

144

1

send하려는 데이터 크기가 크면 memcpy에서 문제가 발생할 것 같습니다.

0

125

2