Background Image

FORUM

조회 수 12294 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

ODBC  이용하여 데이터 입력작업중입니다.  다은과 같은 오류가 발생합니다.
왜 그런건지 알수 있는지요 ?

CA018 

[CUBRID][CUBRID ODBC Driver]儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆儆T?w?w麥*

512
개 문자열  받아 짐.

CA018  - 원래 오류 문장이 뭔지요 ?

다음 소스에서 확인 부탁 드립니다.


SQLTCHAR *Statement = _T("insert into tablename(번호1,번호2,문자열) values (?,?,?)");

SQLPrepare(m_hstmt, Statement, SQL_NTS);

 

SQLUINTEGER CenterID = 10;

SQLUINTEGER FolderID = 11;

char FileName[1024] = {"문자열테스트"};

SQLINTEGER NumberInd = 0;

SQLINTEGER StringInd = SQL_NTS;


retcode = ::SQLBindParameter(m_hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &CenterID, 0, &NumberInd);

if ( !SQL_CK_SUCCEEDED(retcode,SQL_HANDLE_STMT,m_hstmt) ) return 0;

 

retcode = ::SQLBindParameter(m_hstmt, 2, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 0, 0, &FolderID, 0, &NumberInd);

if ( !SQL_CK_SUCCEEDED(retcode,SQL_HANDLE_STMT,m_hstmt) ) return 0;

 

retcode = ::SQLBindParameter(m_hstmt, 3, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 0, 0, FileName, 1024, & StringInd);

if ( !SQL_CK_SUCCEEDED(retcode,SQL_HANDLE_STMT,m_hstmt) ) return 0;

 

retcode = ::SQLExecute(m_hstmt);

if ( !SQL_CK_SUCCEEDED(retcode,SQL_HANDLE_STMT,m_hstmt) ) return 0;

 

retcode = ::SQLExecute(m_hstmt);

if ( !SQL_CK_SUCCEEDED(retcode,SQL_HANDLE_STMT,m_hstmt) ) return 0; <- 여기서 에러 남..

 

 

  • ?
    ApiClasser 2009.02.17 01:50

    SQLPrepare 사용 하기 위해서는 AutoCommit을 끝다음에 사용해야 하는 군요.
    다음과 같이 자동 커밋을 꺼둘 수 있습니다.

    SQLRETURN retcode = SQLSetConnectAttr(m_hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF, 0);
    if ( SQL_SUCCEEDED(retcode) ) // 오류 처리

    원인은 자동 커밋 상태에서는
    SQLExecute 시에 SQLPrepare로 설정한 내용이 전부 지워 지게 된다고 하내요 .
    cci 셈플 코드 확인하니깐 Commit 후에는 다시 SQLPrepare 를 다시 설정해주어야 하는 것을 보고 알았습니다.
    이것이 다른 DB와 같은지는 잘 모르겠지만 현재 큐브리드에서는 커밋이후에는 Prepare 내용이 지워지는것으로 되어 있습니다.

    이상 자답이었습니다.
  • ?
    cgkang 2009.02.17 10:51
    cubrid_broker.conf에서 STATEMENT_POOLING = on 으로 설정한 다음 실행해 보기 바랍니다.
    이 설정이 off인 경우는 드라이버에서 commit(rollback)이 될때, prepare된 모든 statement를 삭제합니다.
    on 인 경우에는 향후 재사용을 위해 삭제하지 않고 유지하게 됩니다.
    statement pooling기능이 드라이버 위에서 동작할때 이런 형태로 동작하게 되므로,
    이런 형태로 동작하는것을 브로커가 지원할지를 설정하는 것이라고 보면 됩니다.
  • ?
    ApiClasser 2009.02.17 19:22
    cubrid_broker.conf 파일에서 STATEMENT_POOLING 문자열이 없는 상태인데요 ..
    추가 해도 되는지요 ?...

    ODBC 용으로 다른 DB 에도 동일하게 데이터 입출력 작업을 하기 위한 유틸인점...
    현재 제가 의도하는바는 서버에 아무런 조작을 하지 않아도 동일한 결과를 가져 오는 방법을 구상중입니다.
    위 팁대로 하면 서버에 조작을 해야 하는거니.. 참고만 해야 할것 같내요 ...


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID를 사용해 보시기 바랍니다!!! file admin 2019.07.31 235
92 윈도우 구동시 데이터베이스 구동 관련 문의 2 이석희 2009.02.23 12316
91 복재 기능의 SELECT 분산 관련 질문 드립니다. 4 kkckc 2009.02.21 16844
90 loaddb 관련 1 벅지 2009.02.21 17169
89 Linked server 1 벅지 2009.02.20 15503
88 큐브리드용 제로보드(4.1)에 대한 문의(adodb 관련) 1 김우람 2009.02.19 16678
87 설치 에러 로그 확인 부탁 드립니다. 8 우페 2009.02.19 15706
86 이중화 관련 질문 하나 더 드립니다.^^ 2 kkckc 2009.02.18 21086
85 큐브리드 호스팅에 대해서 질문입니다. 1 안지민 2009.02.18 12094
84 이젠 매니저가 ㅠㅠ 1 가루구 2009.02.17 20670
83 메니지먼트 접속 불가 문제 4 file 이석희 2009.02.17 12289
82 UPDATE/INSERT를 한번에 하는 쿼리 질문드립니다. 2 kkckc 2009.02.17 28610
81 어찌해서 설치는됫는데... 1 가루구 2009.02.17 14631
80 오라클의 contains()문과 비슷한 기능을 소개해주세요 1 타이거팀 2009.02.17 33351
» ODBC 이용 데이터 입력 중에 ... 3 ApiClasser 2009.02.16 12294
78 어찌해서 설치는됫는데.. 1 가루구 2009.02.16 14475
77 큐브리드설치에러;; 1 가루구 2009.02.14 12526
76 큐브리드 메니져로 쿼리 결과 조회시#2 1 file ApiClasser 2009.02.14 12787
75 [질문]재설치 실패... 2 file 야매코더 2009.02.13 12723
74 VB ADO 사용 관련 문의를 드립니다. 1 늘푸른거북이 2009.02.13 17288
73 큐브리드 메니져로 쿼리 결과 조회시 3 ApiClasser 2009.02.13 13498
Board Pagination Prev 1 ... 144 145 146 147 148 149 150 151 152 153 Next
/ 153

Contact Cubrid

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