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
번호 분류 제목 글쓴이 날짜 조회 수
166 기타 [10.2 path] - 생성된 view구문을 'show create view' 수행 시 정상적으로 출력되지 않던 이슈 patch 큐브리드_김주현 2020.11.09 889
165 기타 큐브리드10.1 에서 윤초 지원 옵션 사용하기 최광일 2017.09.13 1419
164 Linux <주의> 생성한 DB볼륨을 절대! 삭제하지 말자 큐브리드_김주현 2019.09.30 1600
163 Install [linux] wget으로 제품 다운로드 시 "wget: unable to resolve host address ‘ftp.cubrid.org’" 해결방 큐브리드_김주현 2021.07.02 2267
162 기타 ERwin을 이용한 CUBRID 포워드 엔지니어링 file 민순 2020.07.14 2316
161 기타 따라하면 쉬운 compactdb 사용법 file 허서진 2017.07.01 2529
160 기타 ERwin을 이용한 CUBRID 리버스 엔지니어링 file 민순 2020.07.13 3464
159 Java JDBC를 사용한 다중화 구성 SELECT Query 부하 분산 가이드 file 윤준수 2017.03.30 3947
158 튜닝 다중컬럼 조건에 대한 인라인뷰 처리방안 2 박동윤 2016.12.27 6012
157 기타 PyCharm을 이용한 CUBRID, Django 연동 가이드 file 진우진 2016.04.11 8152
156 Java CUBRID에서 Java AddBatch 사용 엄기호 2016.06.28 8365
155 기타 CUBRID Migration Toolkit을 이용한 단계별 마이그레이션 진행 방법 file 진우진 2015.12.15 9543
154 PHP CUBRID HA 환경에서 Apache-PHP 설정 가이드 이용미 2015.06.16 10665
153 기타 CUBRID isolation level & Dirty Read 정만영 2015.05.29 11314
152 기타 알고 보면 쉬운 cubrid lockdb 유틸리티 file 김승훈 2015.12.08 12079
151 Windows Windows 에 설치 된 JRE 설치 위치 확인 하기. file 성진 2015.05.28 12572
150 기타 데이터 확인에 정규표현식을 사용 해 보자. 성진 2016.03.01 12759
149 기타 CUBRID 2008 R4.0 파라미터 변경 사항 (일부) file admin 2011.07.14 13154
148 Linux 가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 file 이경오 2015.07.14 13401
147 기타 콘솔에서 마이그레이션 하기. file 권호일 2015.06.19 13433
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