Background Image
CCI/DB API
2008.11.21 18:34

embedded sql 사용법

조회 수 29734 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

Embedded SQL 사용하기

소개: CUBRID 에서 Embedded SQL (이하 ESQL) 을 작성하고, 빌드하는 방법에 대하여 소개한다. LINUX 를 기준으로 작성되었으며 UNIX 계열에서는 compile 옵션이 다를 수 있으며, 소스는 수정없이 사용될 수 있다. 또한 CUBRID2008 이전 버전에서 작성된 프로그램은 모두 재 compile 되어야만 한다.

2008-10-20 기술컨설팅팀 남재우, CUBRID

적용 대상: CUBRID2008, LINUX, GCC

ESQL?

Embedded SQLX 는 일반적인 프로그래밍언어(C)를 통하여 편리하게 큐브리드 데이터베이스에 접근할 수 있도록 해준다. ESQL 프로그래머는 C언어와 같은 일반적인 프로그래밍 언어 내에서 표준 SQL 명령을 사용하여 데이터베이스 내부의 정보를 검색하거나 갱신 또는 추가 할 수 있게 된다. 데이터베이스 내부에 대한 세부적인 지식이 없더라도 저장 시킬 정보를 준비하거나 추출된 정보를 분석하는데 있어 좀더 자유로운 처리가 가능해진다.

 ESQL 작성 규칙

확장자

ESQL 프로그램 파일의 확장자는 .ec 로 만들어야 한다.

데이터베이스 연결

ESQL을 사용하기 위해서는 일단 초기화 함수(uci_startup())를 먼저 호출하여야 하며, 그 다음 데이터베이스와 연결한다. CUBRID는 동시에 2개 이상의 데이터베이스에 연결할 수 없으므로 하나의 데이터베이스와 작업을 완료한 후 다른 데이터베이스에 연결하여야 한다.

초기화 및 데이터베이스 연결은 아래와 같이 수행한다. demodb 라는 데이터베이스에 public 유저로 passwd 라는 암호를 가진 경우의 예이다. 암호가 없는 경우 with 이하는 생략가능하며, 암호없이 public(큐브리드 기본 제공 데이터베이스 사용자)으로 로그인하는 경우 identified by 이하 생략 가능하다.

uci_startup("프로그램이름");

EXEC SQL CONNECT 'demodb' identified by 'public' with 'passwd';

데이터베이스 종료

데이터베이스 연결 종료는 아래와 같이 간단히 수행한다. 앞서도 언급하였듯이 CUBRID 는 한번에 하나의 데이터베이스와 연결이 가능하므로 연결 종료시에는 별도로 데이터베이스 이름을 주지 않는다.

EXEC SQL DISCONNECT;

호스트 변수

프로그램에서 사용되어 지는 변수중 SQL 문장에 함께 사용되어 지는 경우, SQL 문장의 한 부분에 값을 넣기 위해 사용되는 변수는 호스트 변수로 선언되어야 하며, 선언은 아래와 같이 한다.

EXEC SQL BEGIN DECLARE SECTION

                    int                bus_id;

                    char             bus_num[10];

EXEC SQL END DECLARE SECTION;

프로그램 내에서 호스트변수 사용시 일반 변수와 똑같이 사용한다. 다만 SQL 문 등 ESQL 명령에 사용될 때는 변수명 앞에 : 를 붙여서 사용한다.

EXEC SQL select bus_num from bus where bus_id = :bus_id;

문자열

고정길이의 문자열(CHAR type)에 대하여 검색 조건으로 사용시 변수의 빈자리는 문자열로 채워주어야 한다. 예를 들면 고정길이 10을 가지는 필드에 대하여 검색시 실제 데이터는 5 바이트라면 나머지 5바이트는 스페이스로 채워주어야 한다.

고정길이 문자열 뒷 부분에 스페이이스를 채우는 간단 예제

strcpy(name, “홍길동”);

for (i = strlen(name); i < 10; i++) name[i] = ' ';

name[9] = '


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
66 기타 스칼라 서브쿼리 사용 가이드 웁쓰 2009.12.31 28275
65 Linux CUBRID DB와 Broker 분리방안 정만영 2010.04.28 28412
64 튜닝 [질의튜닝]order by desc가 인덱스 타게 하려면 admin 2011.07.14 28483
63 Java QuantumDB Eclipse Plugin을 사용하여 CUBRID연동하기 2 cubebridge 2009.10.06 28922
62 Linux 복제 따라하기 admin 2008.11.21 29096
61 기타 데이터베이스 생성하기 file 남재우 2011.03.07 29106
60 기타 CUBRID와 타DBMS의 python 사용방법 비교 cubebridge 2009.05.19 29523
59 Install CUBRID Windows버전 삭제 및 재설치 실패시 강제 삭제하는 방법입니다. admin 2011.07.14 29550
58 Install CUBRID Ubuntu Launchpad Installation 방법 file 정만영 2011.07.19 29604
» CCI/DB API embedded sql 사용법 admin 2008.11.21 29734
56 Linux CUBRID서비스 시스템 재구동시 자동 구동/종료 방법 1 admin 2009.04.01 29805
55 Install CUBRID 에 텍스트큐브 설치하기 file inureyes 2009.12.31 29852
54 튜닝 CUBRID 2008 R4.0의 커버링 인덱스(covering index)는 무엇인가? file admin 2011.07.14 29883
53 기타 CUBRID 복제 구성하기 - 단일 서버에 구성 방법 포함 남재우 2010.03.08 30004
52 Install CUBRID 설치 및 매니저 구동하기(CUBRID 2008 R2.0) CUBRID_DEV 2009.08.18 30054
51 PHP IIS에서 PHP, CUBRID 사용하기 file 남재우 2010.04.19 30311
50 Install CUBRID 설치 안내 - LINUX 남재우 2011.03.08 30414
49 기타 CUBRID에서의 BLOB/CLOB 타입 사용법 cubebridge 2011.03.08 30453
48 기타 CUBRID Migration Toolkit 튜토리얼 file cubrid 2010.10.22 30477
47 Install APC_Install-tools 구성 및 설치 방법 file Prototype 2009.03.13 30614
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

Contact Cubrid

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