update, delete 질문~

by 봉봉나무 posted Nov 24, 2010

아래에 이어 delete 문까지 안되는걸로 봐서 뭔가 빠트린듯 하여 소스 올립니다~

 

bind를 사용하면 cci_execute가 0으로 리턴 되네요~ 흠냐;;

 

그리고 bind를 사용 안하는 코드로 Delete 한 후에는 csql(큐브리드 메니저)에서는 분명히 없는대,

샘플 예제로 select 문을 수행하면 값이 있습니다. 두둥!! o_O

server, service 둘다 종료해서 다시 시작해도 똑같습니다.

 

도대체 무슨경우지;; OTL

====================================================================

// 안됨

 int req, res;

 char   *delete_sql = "DELETE FROM TBL_USER WHERE AND ID=?";
 
 char            buf[CUBRID_BUF_SIZE+1];
 T_CCI_ERROR     error;

 if ((req = cci_prepare( nConHandle, delete_sql, 0, &error)) < 0) {
... }

  if ((res = cci_bind_param(req, 1, CCI_A_TYPE_STR, (void *)"inimax", CCI_U_TYPE_STRING, (char)NULL)) < 0) {
...  }

  if ((res = cci_execute(req, 0, 0, &error)) < 0) {
...  }
  printf("%dn", res);


 if (cci_end_tran( nConHandle, CCI_TRAN_COMMIT, &error) < 0) {
...

 }

======================================================================

//잘됨

char   *delete_sql = "DELETE FROM TBL_USER WHERE ID='inimax'";
 
 char            buf[CUBRID_BUF_SIZE+1];
 T_CCI_ERROR     error;

 // 질의 컴파일을 수행한다.
 if ((req = cci_prepare( nConHandle, delete_sql, 0, &error)) < 0) {
... }
 
  // 질의를 수행한다.
  if ((res = cci_execute(req, 0, 0, &error)) < 0) {
...  }
  printf("%dn", res);
   
 // 에러없이 정상 처리되었으므로 커밋 처리한다.
 if (cci_end_tran( nConHandle, CCI_TRAN_COMMIT, &error) < 0) {
... }