Background Image

FORUM

조회 수 12536 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.
OS
Window7 64
CUBRID Ver.
9.3.3.0014
CUBRID TOOL Ver.
9.3.1.703
응용 환경(API)
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로만 사용을 해야하는 건지, 다른 방법이 있는 건지 빠른답변을 부탁 드립니다.




  • ?
    진우진 2016.01.21 18:57

    커넥션 부분 정의하실때 아래와 같이 charset=utf-8 도 넣어주시기 바랍니다.

    private static readonly string connString = "server=192.168.174.128;database=demodb;port=33000;user=public;password=;charset=utf-8";

  • ?
    minimin0516 2016.01.21 19:08

    커넥션 부분 마지막에 해당 구문을 넣어도 한글이 정상적으로 저장되지 않았습니다.

    (해당 구문도 이전에 테스트 하였는데 글 작성 시 누락되었습니다..)

    이것 말고 다른 방법은 없나요?

    또, mssql에서의 image 타입은 어떤걸로 대체되는지도 알려주셨으면 합니다.

    현재 image 타입을 BIT VARYING(2000)으로 지정하였으나, 데이터 업데이트 시 예외처리가 발생합니다...

    (euc-kr로 진행하고 있는 상황입니다.)

  • ?
    진우진 2016.01.21 19:22

    1. 사내에서 테스트할 시에는 charset=utf-8 추가 후 정상적으로 입력 되었습니다.

    다음 샘플 코드를 참조하여 데이터 업데이트 이전에 MySQL에서 가져온 데이터를 UTF-8로 인코딩 해보시기 바랍니다.


    string sql = "SELECT * from member";

                

                //ADO.NET

                

                byte[] data_query = Encoding.Default.GetBytes(sql);

                using (CUBRIDCommand cmd = new CUBRIDCommand(Encoding.GetEncoding("UTF-8").GetString(data_query), DBConn))

                {

                    using (DbDataReader reader = cmd.ExecuteReader())

                    {

                        while (reader.Read())

                        {

                            byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(reader.GetString(6));

                            string str = Encoding.Default.GetString(bytes);

                        }             

          

                    }

                }


    2. MySQL image 타입은 bit varying 처럼 뒤에 크기 설정부분 없이 타입 설정하신 뒤 다시 시도해보시기 바랍니다.

  • ?
    minimin0516 2016.01.21 20:11
    String sql = " select * from nation order by `code` asc";
    using (CUBRIDDataAdapter da = new CUBRIDDataAdapter(sql, conn))
    {
        using (CUBRIDDataAdapter daCmd = new CUBRIDDataAdapter(sql, conn))
        {
            CUBRIDCommandBuilder cmdBuilder = new CUBRIDCommandBuilder(daCmd);
            da.InsertCommand = cmdBuilder.GetInsertCommand();
        }
    
        DataTable dt = new DataTable("nation");
        da.Fill(dt);
    
        DataRow newRow = dt.NewRow();
    
        newRow["code"] = "코드";
        newRow["name"] = "이름";
        newRow["capital"] = "캐피탈";
        newRow["continent"] = "내용";
    
        dt.Rows.Add(newRow);
        da.Update(dt);
    }
    http://www.cubrid.org/manual/ko/9.3.0/api/adodotnet.html 에서 제공하는 사용법대로
    데이터를 insert 하고, cubrid manager에서 utf-8로 설정하고 조회 했을 때 정상적으로 한글이 출력이 되는지 확인 부탁드립니다.
    정상적으로 됐을 경우 database 설정과 table 설정이 궁금합니다.

  1. CUBRID 사용자를 위한 DBeaver 도구 출시 안내

    Date2024.04.23 Byadmin Views105
    read more
  2. SQLGate for CUBRID 영구 무료 라이선스 제공

    Date2020.04.09 Byadmin Views4471
    read more
  3. 큐브리드 사용한 데이터 구축 시 시간이 너무 오래 걸립니다.

    Date2016.02.15 Bylhb Views7581
    Read More
  4. 큐브리드 에러 관련 문의 입니다.

    Date2016.02.15 By그러게 Views5994
    Read More
  5. 특정값으로 문자열을 분리하려고 합니다

    Date2016.02.15 By이호영 Views8
    Read More
  6. oracle 마이그레이션 툴 이용 중 문제점에 대해 문의드립니다.

    Date2016.02.15 By태진 Views6670
    Read More
  7. HA구성에서 파티션 적용가능?

    Date2016.02.12 By라면 Views6362
    Read More
  8. 질의 자동화 실행 주기 관련 문의

    Date2016.02.11 By종이 Views5953
    Read More
  9. 큐브리드 연동 중 Unable to get shard id. No hint available. 에러가 발생합니다.

    Date2016.02.06 By호잉호잉호 Views9
    Read More
  10. [PHP]CUBRID 연결 문제

    Date2016.01.29 Byphp_user2 Views6901
    Read More
  11. 테이블단위로 이관

    Date2016.01.29 By이호영 Views14
    Read More
  12. CUBRIDbin 폴더에 생성 되는 dmp 파일 관련하여 확인 부탁드립니다.

    Date2016.01.28 By질의응답요청 Views23
    Read More
  13. 호스트 연결 에러

    Date2016.01.28 ByPJEPJE Views10
    Read More
  14. 마이그레이션 문의

    Date2016.01.28 Byjoke7 Views6751
    Read More
  15. [긴급요청] .net 에서 데이터 insert 시 cubrid manager에서 한글 깨짐 현상 문의

    Date2016.01.28 Byminimin0516 Views6865
    Read More
  16. 윈도우 설치후 실행

    Date2016.01.27 ByHera Views6254
    Read More
  17. 큐브리드 설치 cubrid service start 안됨

    Date2016.01.27 ByHera Views4
    Read More
  18. virtual memory

    Date2016.01.26 Bylife Views6181
    Read More
  19. 데이터 볼륨 정리

    Date2016.01.22 By청백-e Views6819
    Read More
  20. ADO.NET cascci.dll 64Bit, field name/type 오류

    Date2016.01.21 By할리 Views6629
    Read More
  21. 분할테이블 인덱스 조회시 오류입니다.

    Date2016.01.21 By종이 Views6459
    Read More
  22. [빠른답변요청] c#에서 Table 업데이트 시 한글깨짐 문제..

    Date2016.01.20 Byminimin0516 Views12536
    Read More
Board Pagination Prev 1 ... 82 83 84 85 86 87 88 89 90 91 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales