아래에 이어 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) {
... }