database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
ㆍInformix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Informix Q&A 1890 게시물 읽기
No. 1890
질문) prepare declare free...
작성자
초보;;;
작성일
2003-12-23 17:15
조회수
5,235

 안녕하세요.. 보통 아래와 같은 구문으로 프로그램을 하잖아여..
 EXEC SQL PREPARE tst_pre FROM "select ....";
 if( sqlca.sqlcode != 0 ) 
 {
         printf("prepare error\n");
        exit(1);
 }
 EXEC SQL DECLARE tst_cur CURSOR FOR tst_pre;
 if( sqlca.sqlcode != 0 ) 
 {
         printf("declare error\n");
        exit(1);
 }
 EXEC SQL OPEN tst_cur;
 if( sqlca.sqlcode != 0 ) 
 {
         printf("open error\n");
        exit(1);
 }
 EXEC SQL FETCH tst_cur INTO :tst_var;
 while( 1 )
 {
  if( sqlca.sqlcode != 0 ) 
   {
   EXEC SQL CLOSE tst_cur;
   EXEC SQL FREE  tst_pre;
   EXEC SQL FREE  tst_cur;
   printf("fetch error\n");
   exit(1);
  }
 }
 EXEC SQL CLOSE tst_cur;
 EXEC SQL FREE  tst_pre;
 EXEC SQL FREE  tst_cur;
 
 질문 1) 아래와 같이 prepare문을 안썼을경우 효율면에서 어느정도 차이가 나나여?
 EXEC SQL DECLARE tst_cur CURSOR FOR select ....;
 if( sqlca.sqlcode != 0 ) 
 {
         printf("declare error\n");
         exit(1);
 }
 EXEC SQL OPEN tst_cur;
 if( sqlca.sqlcode != 0 ) 
 {
         printf("open error\n");
        exit(1);
 }
 EXEC SQL FETCH tst_cur INTO :tst_var;
 while( 1 )
 {
  if( sqlca.sqlcode != 0 ) 
  {
   EXEC SQL CLOSE tst_cur;
   EXEC SQL FREE  tst_cur;
   printf("fetch error\n");
   exit(1);
  }
 }
 EXEC SQL CLOSE tst_cur;
 EXEC SQL FREE  tst_cur;
 
 
 질문2) 아래와 같이 declare, open시 에러일경우 prepare하고 cursor을 free 안해줘도 되나여?
 EXEC SQL PREPARE tst_pre FROM "select ....";
 if( sqlca.sqlcode != 0 ) 
 {
         printf("prepare error\n");
         exit(1);
 }
 EXEC SQL DECLARE tst_cur CURSOR FOR tst_pre;
 if( sqlca.sqlcode != 0 ) 
 {
         EXEC SQL FREE  tst_pre;
         printf("declare error\n");
         exit(1);
 }
 EXEC SQL OPEN tst_cur;
 if( sqlca.sqlcode != 0 ) 
 {
         EXEC SQL FREE  tst_pre;
         EXEC SQL FREE  tst_cur;
         printf("open error\n");
        exit(1);
 }
 EXEC SQL FETCH tst_cur INTO :tst_var;
 while( 1 )
 {
  if( sqlca.sqlcode != 0 ) 
   {
   EXEC SQL CLOSE tst_cur;
   EXEC SQL FREE  tst_pre;
   EXEC SQL FREE  tst_cur;
   printf("fetch error\n");
   exit(1);
  }
 }
 EXEC SQL CLOSE tst_cur;
 EXEC SQL FREE  tst_pre;
 EXEC SQL FREE  tst_cur;

[Top]
No.
제목
작성자
작성일
조회
1893SQL질문입니다. [2]
초보자
2003-12-25
5216
1892XP에 informix7.3을 설치하고 dbimport를 하는데
김동일
2003-12-25
4904
1891informix 에서 mssql로 데이타를 옮겨야 하는데요.. [1]
낮손님
2003-12-24
4790
1890질문) prepare declare free...
초보;;;
2003-12-23
5235
1889DB에 Insert 와 Select의 성능차이는? [4]
왕초보
2003-12-23
6031
1888Primary Constraint... [1]
초보
2003-12-23
5732
1887인포믹스에는 sqlgate 같은 프로그램은 없나여? [2]
부산
2003-12-22
5582
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다