ODBC SQLBindParameter ArrayLoad시, 쓰레기값이 붙어 나오는 현상

by jhlee posted May 31, 2022


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Win 10 
CUBRID Ver.
Cubrid Server 11.0 / ODBC Driver 10.2 / 11 테스트 결과 동일함
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
ODBC


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------

 

이전에 문의 내역으로 올라온 내용과 아주 비슷하나, 다른 이슈 내용으로 보여 문의드립니다.
https://www.cubrid.com/index.php?mid=qna&search_target=nick_name&search_keyword=separk&document_srl=3804959

 

 

 

* 테스트 환경

 

Server

- 11.0.5.0299

 

ODBC Driver (Unicode) 

- 11.00.00.01

- 10.02.00.15

 

 

ODBC Unicode 버전 사용시

SQLBindParameter를 통하여 Array Binding 으로 여러건의 Row를 한번에

Insert 하는 ODBC 로직 수행 결과

아래와 같이 동작합니다.

 

실제로 테스트한 테스트 케이스 결과 올립니다.

 

create table test ( info varchar(20) );

 

 

실제 Load 할 데이터 

---------------------------------------------

a

bb

ccc

dddd

eeeee

1

22

333

4444

 

Load된 데이터 

---------------------------------------------

a

bbb

ccc

ddddd

eeeee

1

222

333

44444

 

위와 같이 동일한 특정 문자열이 입력되고 있으며,

임의 테이블을 제거후 다시 Insert 하도록 하여도 꼭 동일한 문자열이 

등록되고 있었습니다.

 

Driver는 Unicode 드라이버로만 테스트 하였고,

단일 Insert info 구문 에서는 해당 증상이 재현되지 않습니다.

ArraySize를 정한 ArrayLoad 시 에만 데이터의 길이에 따라 쓰레기값이

랜덤하게 추가됩니다.

 

SQLBindParameter , SQLExecute 에서는 정상적으로 SQL_SUCESS가 리턴되었으며,

 

 

 

 


Articles