안녕하세요... 환절기에 다들 감기 조심 하시구요 ^^
다른게 아니라 VC++ 을 이용하여, DB Programming 을 하고 있습니다.
디비는 sql 2005 를 사용하고 잇구요. 디비 연결은 ODBC 를 이용하고 있습니다.
일반적으로 사용하는 기본 코드인 SQLAllocHandle 및 SQLBindParameter 를 사용해서 프로그래밍을 하고 있는데요.
TCHAR sqlQuery[1024]; memset(sqlQuery, 0, sizeof(sqlQuery));
sprintf(sqlQuery, TEXT("{ CALL PROC_JAMES_LIN ( ?, ?, ? )}") ); 와 같이 프로시저를 호출하는 명령을 입력하여 OUTPUT 을 받으려고 하는데. 프로시저 안에
아래와 같이 Insert 및 Update 구문이 들어가 있으면 OUTPUT 및 그냥 Return Value 가 엉뚱한 (-1) 값이 나옵니다.
디비 세팅에서 잘못된 것일까요? 아니면 다른 문제가 있을까요?
create PROCEDURE [dbo].[PROC_JAMES_LIN]
@strAccount varchar(20)
,@strPassword varchar(20)
, @nRet int output
AS
DECLARE @nCount int
SET @nCount = 0
BEGIN
SELECT @nRet = -1
SELECT @nCount = COUNT(strAccount) FROM JAMESTABLE
IF @nCount <> 0
BEGIN
INSERT INTO JAMESTABLE VALUES(0, @strAccount, '111111')
SELECT @nRet = 100
RETURN 102
END
SELECT @nRet= 100
RETURN 103
END
RETURN 104
|