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
번호 분류 제목 글쓴이 날짜 조회 수
26 Java tomcat8.0(DBCP2)과 CUBRID 연동하기 손승일 2016.07.01 15593
25 튜닝 LIMIT절을 사용하여 SQL문을 간결하게 작성하고, 부분범위 처리를 유도하자. 권호일 2016.06.29 15513
24 기타 CUBRID 2008 R4.0 GA 버전의 주요 기능만 요약한 PPT 문서 file admin 2011.07.14 15462
23 기타 CUBRID 2008 R3.0 추가기능 file janus 2010.09.03 15455
22 기타 CUBRID2008 실행계획 분석하기 file cubebridge 2009.07.28 15339
21 기타 CUBRID 스캔 이해하기 손승일 2009.08.15 15116
20 기타 콘솔에서 마이그레이션 하기. file 권호일 2015.06.19 13433
19 Linux 가상머신 환경에서 리눅스 및 큐브리드 설치 가이드 file 이경오 2015.07.14 13401
18 기타 CUBRID 2008 R4.0 파라미터 변경 사항 (일부) file admin 2011.07.14 13154
17 기타 데이터 확인에 정규표현식을 사용 해 보자. 성진 2016.03.01 12759
16 Windows Windows 에 설치 된 JRE 설치 위치 확인 하기. file 성진 2015.05.28 12572
15 기타 알고 보면 쉬운 cubrid lockdb 유틸리티 file 김승훈 2015.12.08 12079
14 기타 CUBRID isolation level & Dirty Read 정만영 2015.05.29 11314
13 PHP CUBRID HA 환경에서 Apache-PHP 설정 가이드 이용미 2015.06.16 10665
12 기타 CUBRID Migration Toolkit을 이용한 단계별 마이그레이션 진행 방법 file 진우진 2015.12.15 9543
11 Java CUBRID에서 Java AddBatch 사용 엄기호 2016.06.28 8365
10 기타 PyCharm을 이용한 CUBRID, Django 연동 가이드 file 진우진 2016.04.11 8152
9 튜닝 다중컬럼 조건에 대한 인라인뷰 처리방안 2 박동윤 2016.12.27 6012
8 Java JDBC를 사용한 다중화 구성 SELECT Query 부하 분산 가이드 file 윤준수 2017.03.30 3947
7 기타 ERwin을 이용한 CUBRID 리버스 엔지니어링 file 민순 2020.07.13 3464
Board Pagination Prev 1 ... 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