* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
Window7 64 | |
9.3.3.0014 | |
9.3.1.703 | |
c# |
* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.
에러 내용 및 재현 방법 | 재현 가능한 Source와 SQL |
관련 테이블(인덱스, 키정보 포함) 정보 | CUBRID 홈 디렉토리 아래 log 디렉토리 압축 |
-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
c# 소스상에서 MSSQL에서 Select한 데이터를 복사하여
큐브리드 Table에 Update를 하는 과정에서 한글깨짐이 발생하고 있습니다.
CUBRIDDataAdapter를 이용해서 빈 DataTable을 Select 후 Update 함수를 사용하여 Table을 변경하고자 하는데
정상적으로 DB에 데이터가 Update 되지만, 한글이 깨집니다.
CUBRID Database 연결정보에서 문자집합을 UTF-8로 지정이 되어있고,
Table 콜레이션 또한 utf8_bin으로 설정이 되어있는데 설정이 잘못 된건지요?(콜레이션이 정확하게 뭔지는 모르겠지만)
혹시나 이와 관련되어 지원하고 있는 함수가 있는지 알수있을까요?
혹시 몰라 c# 소스와 Table 정보/한글이 깨지는 데이터를 첨부해서 올립니다.
빠른 답변 부탁드립니다.
---------------------------------------------------------------------------------------------------------------------------------------
추가로
데이터베이스 연결 시 문자집합(charset)을 UTF-8로 설정하였을 때,
CUBRID MANAGER에서 질의응답모드로 Insert 쿼리를 수행하면 데이터가 정상적으로 돌아가고
Selete로 데이터를 조회 할 시 이또한 정상적으로 조회가 됩니다.
그러나 .net에서 DB 연결 시 설정을 아래와 같이 하고,
-> new CUBRIDConnection("server=localhost;database=demodb;port=30000;user=dba;password=1234");
insert 문을 실행 하였을 때 Cubrid MANAGER에서 Select를 할 시 한글 데이터가 아래 첨부한 이미지처럼 깨져서 조회가 됩니다.
ex) insert into code values ('1', '일');;
그래서 ODBC, insert into code values ('1', _UTF8'일'), byte array를 utf-8로 변환하여 insert 작업을 했으나
이것 또한 CUBRID MANAGER에서는 데이터가 깨진채로 출력이 됩니다.
CUBRID MANAGER 연결을 UTF-8이 아닌 EUC-KR로 연결하였을 때, .NET에서 입력한 한글 데이터값과 CUBRID MANAGER에서
INSERT문을 사용하여 추가한 값이 정상적으로 출력이 되고 있는 것을 보아,
CUBRID가 NET에서 쿼리를 실행하였을 때 UTF-8이 아닌 EUC-KR로 인식을 하는 것 같습니다.
(처음에는 .net의 문제로 판단하였으나 이후 코드상에 Selete문을 날려 확인해 본 결과 정상적으로 데이터를 가져오지만, CUBRID MANAGER에서 INSERT문을 통해 추가된 데이터는 조회하지 못하는 것으로 보아 CUBRID ADO.NET Driver의 문제가 아닌가 싶습니다.)
.NET에서는 CUBRID 사용 시 DB를 EUC-KR로만 사용을 해야하는 건지, 다른 방법이 있는 건지 빠른답변을 부탁 드립니다.