FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[3622] Re:Re:Re:Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기
안명호.ASURADA [asurada] 2416 읽음    2010-12-30 01:35
해결 되었습니다.
문제에 대해서 이해를 하려면 좀 더 공부를 해 봐야겠지만 문제는 업데이트 statement 핸들을 해제가 되지 않아서 였던것 같습니다.
statement 핸들은 해제하기 위해 DSQL_Close 를 사용하여 아래와 같이 수행을 하였는데
isc_dsql_free_statement( status, &stmt, DSQL_close )
이 구문에서 아래와 같은 에러가 발생하더군요.
-501 - The cursor identified in a FETCH or CLOSE statement is not open.

statement 해제를 위해 DSQL_close 대신 DSQL_drop 을 사용하니 해제가 되고 몇 번을 수행을 하여도 정확한 레코드 수를 얻을 수 있었습니다.

부족한 자료로 공부를 하여다 보니 여기저기 막히는 곳이 많군요. 아믛든 관심있는 답변 감사드립니다.


멀고도험한길 님이 쓰신 글 :
: 1. isc_dsql_allocate_statement 실행후
: 2. 질문하신  업데이트 질의 문 수행 후 반영된 레코드 수 알아오기
: 3. isc_dsql_free_statement( status, &stmt, DSQL_close );
: 순서대로 진행되어야 하는게 아닌지요.
: c로 개발하지않아서 저도잘~
:
:  pCur++;  
:     length = isc_vax_integer(pCur, 2); /* normally 29 bytes */ 
:     pCur += 2;  
:  
:     while(*pCur != 1)   
:     {  
:         switch(*pCur)   
:         {  
:         case isc_info_req_select_count:  
:             pCur++;  
:             length = isc_vax_integer(pCur, 2);  
:             pCur += 2;  
:             sel_count = isc_vax_integer(pCur, length);  
:             pCur += length;  
:             break;  
:         }
:    }
:
: 위부분이 제가 개발한 코드와좀다릅니다.
: isc_dsql_sql_info( status, &stmt, sizeof(info_count), info_count, sizeof(result), result );  
:
: >> 제가 사용하는 코드 isc_dsql_sql_info( status, &stmt, 1, 0x23, sizeof(result), result );  
: 를 호출하면
: result에 값이할당됩니다.
: result[0] = isc_info_sql_records 이 아니면 에러 입니다.
: 결과값은 29바이트이상 입니다.
:
: upd_count = isc_vax_integer(result[6],  SizeOf(Integer) );
: del_count  = isc_vax_integer(result[13], SizeOf(Integer) );
: ins_count  = isc_vax_integer(result[27], SizeOf(Integer) );
:
: 죽어도 이해가 안된다하시면 아래 주소로 친구추가~
: sens2468골뱅이nate.com 메신저 입니다.

+ -

관련 글 리스트
3612 [Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 안명호.ASURADA 2337 2010/12/25
3615     Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 멀고도험한길 2193 2010/12/27
3616         Re:Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 안명호.ASURADA 2563 2010/12/27
3617             Re:Re:Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 멀고도험한길 2235 2010/12/27
3622                 Re:Re:Re:Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 안명호.ASURADA 2416 2010/12/30
3618                 Re:Re:Re:Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 안명호.ASURADA 2319 2010/12/27
3613     Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 멀고도험한길 9951 2010/12/27
3614         Re:Re:[Q] C API 를 이용하여 업데이트 질의 문 수행 후 반영된 레코드 수 알아오기 안명호.ASURADA 2340 2010/12/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.