티스토리 뷰
ODBC 연결시 저장프로시저에 파라미터를 못넘길때.
Sysbase IQ를 ODBC로 연결해서 테스트해보던중
SqlConnection 에서는 잘 되던 프로시저놈이 OdbcConnection 으로 변경한 후에 파라미터가 넘어가질 않는다.
ERROR [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]프로시저 또는 함수 'USP_USER'에 매개 변수 '@ID'이(가) 필요하지만 제공되지 않았습니다.
기존 SqlConnection 사용시 잘 되던놈이 ODBC로 연결시 파라미터 값을 못넘긴다고 계속 뜬다.
SqlCommand command = new
SqlCommand ("USP_USER", con);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@ID", "AAA"));
con.Open();
SqlDataReader reader = command.ExecuteReader();
디버그를 해서 찍어봐도 odbc command 객체에는 파라미터ID, 값이 모두 들어있는데
왜 ExcuteReader(); 만 실행하면 파라미터값을 받지 못했다고 뜨는지
4시간 날렸다. 도대체 왜 다르게 만들어놓은거야 ㅡ.ㅡ
OdbcCommand command = new OdbcCommand("{call USP_USER (?)}", con);
command.CommandType = CommandType.StoredProcedure;
OdbcParameter param = new OdbcParameter("ID", ID);
command.Parameters.Add(param);
OdbcDataReader reader = command.ExecuteReader();
- 저장프로시저 전체를 대괄호로 감싸고 "{ }" 프로시저명 앞에 call 이란 명령어를 붙여주고.
뒤에 "(?)" 로 파라미터를 보내겠다고 선언해야한다.
보내려는 프로시저에 파라미터가 두개라면 "(?, ?)" 이렇게 해주면 되고.
진심 4시간 날린거 생각하면.....
'프로그래밍 > .NetFramework' 카테고리의 다른 글
64Bit Window 에서 32Bit ODBC 연결하기. (0) | 2012.10.18 |
---|---|
BackgroundWorker, ProgressBar 활용 (0) | 2012.09.27 |
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005. (0) | 2012.05.06 |
문자열확인 정규표현식 유효성 Regex (0) | 2012.04.25 |
Server에서 Microsoft.Interop.Excel.dll 설정 (0) | 2012.04.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 프로시저
- Chart
- grid
- IE
- 자바스크립트
- 셀렉터
- JavaScript
- jQuery Mobile
- MSSQL
- 제이쿼리
- drag&drop
- CSS
- jquery chart
- Ajax
- WebApi
- rowspan
- JS
- workbook
- WCF
- Excel
- SVG
- 저장프로시저
- Style
- jQuery
- Mobile
- json
- css3
- radius
- ASP.NET
- html5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함