일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- microsoft
- 비주얼스튜디오
- ASP
- 엑셀
- 이클립스
- 윈도우
- 윈폼
- 단축키
- replace()
- windows
- Excel
- MS
- jQuery
- oracle
- 태그를 입력해 주세요.
- Winform
- 자바스크립트
- DataGrid
- CONVERT()
- IIS
- 프로시저
- SSRS
- aspnet
- 오라클
- MSSQL
- attr()
- javascript
- c#
- 리포팅서비스
- 마이크로소프트
- Today
- Total
DJ메탈짱™의 Free Style
[MS-SQL] ExecuteNonQuery 실행시 항상 -1 Return #NOCOUNT 본문
- 프로시저 생성 -
CREATE PROCEDURE [dbo].[PROTOTYPE_PROCEDURE_BHCHOI]
(
@SOURCECOMPANY NVARCHAR(100) = NULL
)
AS
-- 이 옵션은 세션에 있는 모든 명령문에 대해 영향 받은 행의 수에 대한 메시지를 요청하는 클라이언트로 다시 보내지 않도록 막습니다.
SET NOCOUNT ON
-- 신규정보 추가
INSERT INTO _PROTOTYPE ( SOURCECOMPANY ) VALUES ( @SOURCECOMPANY )
set @RETURNKEY = IDENT_CURRENT('_PROTOTYPE')
SET NOCOUNT OFF
- C# 코드 -
Data Access Application Block 을 활용하여 아래와 같이 코딩하여 테스트 진행.
SqlParameter[] arParms = new SqlParameter[2];
// @SOURCECOMPANY Input Parameter
arParms[0] = new SqlParameter("@SOURCECOMPANY", SqlDbType.NVarChar, 100);
arParms[0].Value = txtCompany.Text;
...중간 생략...
// Execute the stored procedure (프로시저 실행 부분)
rlt = bizObj.ExecuteNonQuery("PROTOTYPE_PROCEDURE_BHCHOI", arParms);
- 결과값 반환 -
rlt 값이 항상 -1을 반환하여 성공/실패 체크를 통해 로직을 구현할 수가 없는 상황이 발생.
- 해결 방안 -
프로시저 생성시 SET NOCOUNT 옵션으로 인해서 ExecuteNonQuery의 Return Value가 항상 -1을 반환하였던 것임. 옵션을 제거하니 더이상 -1을 반환하지 않았음.
'일(job) > DBMS' 카테고리의 다른 글
[MS-SQL] datetime --> char 형태로 데이터 변환하기 #CHARINDEX() #REPLACE #CONVERT (0) | 2016.01.14 |
---|---|
[MS-SQL] 연결된 서버 설정/제거 방법 #OPENQUERY #sp_addlinkedserver #sp_addlinkedsrvlogin #sp_dropserver (0) | 2016.01.14 |
[MS-SQL] 대소문자 비교하는 방법 #VARBINARY #CAST (0) | 2016.01.14 |
[MS-SQL] 임시테이블 존재여부를 확인하여 Drop (0) | 2016.01.14 |
[MS-SQL] 8시간 후의 날짜와 시간을 10분 단위로 반환 (0) | 2016.01.14 |