Background Image
CCI/DB API
2008.11.21 18:34

embedded sql 사용법

조회 수 29731 추천 수 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] = '


  1. CCI-API 에서 OID 사용 예제

  2. CCI-API 사용 예제

  3. embedded sql 사용법

Board Pagination Prev 1 Next
/ 1

Contact Cubrid

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