이번에는 구조체를 사용하고 함수를 이용한 ESQL 프로그램을 해보겠다. EXEC SQL BEGIN DECLARE SECTION; typedef struct { char a[100]; char b[100]; } S; EXEC SQL END DECLARE SECTION; void test(s) $PARAMETER S *s; { $char work1[100]; $char work2[100]; memset(work1,0x00,sizeof(work1)); memset(work2,0x00,sizeof(work2));memcpy(work2,"a2",sizeof(work2)); EXEC SQL connect to "dbname"; EXEC SQL DECLARE test_cur SCROLL CURSOR FOR SELEC..
보통 C 프로그램은 구조체를 사용한다. 그래서 이번에는 구조체를 사용하여 ESQL 프로그램을 해보겠다. EXEC SQL BEGIN DECLARE SECTION; typedef struct { char a[100]; char b[100]; } S; EXEC SQL END DECLARE SECTION; main(int argc, char *argv[]){ $S s; memset(&s,0x00,sizeof(S)); //배열일 경우는 배열명이 포인터니 그냥 배열이름을 써도 되지만 구조체는 구조체명이 포인터가 아니기 때문에 &붙여서 포인터를 만든다 $char work1[100]; $char work2[100]; memset(work1,0x00,sizeof(work1)); memset(work2,0x00,sizeo..
main(int argc, char *argv[]){ $char work1[100]; $char work2[100]; memset(work1,0x00,sizeof(work1)); memset(work2,0x00,sizeof(work2)); memcpy(work2,"a2",sizeof(work2)); EXEC SQL connect to "dbname"; EXEC SQL DECLARE test_cur SCROLL CURSOR FOR SELECT a FROM test WHERE a=:work2 ; EXEC SQL OPEN test_cur; while(1){ EXEC SQL FETCH NEXT test_cur INTO :work1; if(sqlca.sqlcode==100){ break; }else if(sqlc..
앞서 select 결과 1건 가져오는것과 비슷하지만 select 결과가 여러건 이면 cursor와 fetch next를 이용해서 처리했다. ESQL/C 프로그램을 할때는 해당 구문에 EXEC SQL 을 써서 구분해준다. 대학시절 공부할때 프로그래머들은 귀찮고 긴것을 싫어한다고 배웠다. 그래서 인지 EXEC SQL 대신 $만 써도 ESQL/C 구문인지 나타낼 수 있다. PHP도 $를 쓰는데..^^ 앞의 소스를 $를 사용해 줄여보면 아래와 같다. main(int argc, char *argv[]){ $char work1[100]; memset(work1,0x00,sizeof(work1)); $connect to "dbname"; $DECLARE test_cur SCROLL CURSOR FOR SELECT a..
앞서 select 결과 1건 가져오는것과 비슷하지만 select 결과가 여러건 이면 cursor와 fetch next를 이용해서 처리한다. 소스를 보는게 빠르다^^ main(int argc, char *argv[]){ $char work1[100]; memset(work1,0x00,sizeof(work1)); EXEC SQL connect to "dbname"; EXEC SQL DECLARE test_cur SCROLL CURSOR FOR SELECT a FROM test; EXEC SQL OPEN test_cur; while(1){ EXEC SQL FETCH NEXT test_cur INTO :work1; if(sqlca.sqlcode==100){ break; }else if(sqlca.sqlcode!..
인터넷을 뒤져도 proc나 esql에 대한 자료가 없어서 가장 기초적인 select 프로그램을 짜봤다. 이것만 마스터 한다면 어떠한 프로씨 프로그램도 코딩 기능하리라 본다. 참조로 c언어는 자바와 달라서 error handling을 안한다. 즉, 자바는 에러, exception이 발생하면 자동으로 exception handling을 하려 에러를 보여주는데 c언어는 그냥 에러가 발생해도 넘어간다. 즉 개발자가 일일히 에러가 발생할 만한곳에 에러 핸들링 코딩을 하지 않으면 자바처럼 에러를 뱉고 끝나는게 아니라 그냥 넘어간다. 자바를 먼저 코딩한 사람들은 이게 이상하다고 생각할 수 있는데 어쩔때는 장점도 될 수 있다. 구지 에러나도 안멈춰도 될만한 곳에는 그냥 넘어가니 좋다. 그러나! 일반적으로 에러코딩을 넣..
프로씨(proc) 강좌나 한국어 자료가 검색해보면 없다. 그래서 프로씨에 관해 궁금한 사람들을 위해 기초부터 전개해본다. 시중에 프로씨에 관한 책이 없기 때문에 충분한 내용이 전달안될 수도 있다. 하지만 소스는 저자가 직접 짜고 실행한것이기 때문에 안심해도 된다. 오라클 DB를 사용하면 프로씨, 인포믹스 DB를 사용하면 이씨(ec) 라고 불린다. 둘다 해봤지만 거의 내용이 동일하다. ec로 아주 기초적인 db에 데이터 insert 프로그램을 짜본다. main(int args, char *argv[]){ EXEC SQL BEGIN DECLARE SECTION; char work1[100]; EXEC SQL END DECLARE SECTION; memset(work1,0x00,sizeof(work1)); m..
인포믹스 ec의 기초인 호스트변수에 db select 한 값을 넣어보자 먼저 db 명을 설정한다. $connect to "dbname"; $char date[1000]; //날짜가 들어갈 변수명. 호스트변수기 때문에 $를 붙여준다. EXEC SQL SELECT max(date) INTO :date FROM table_name; 이렇게 하면 호스트변수 date에 select 한 max(date)값이 들어간다. proc나 ec를 처음 해본사람은 INTO가 생소할텐데 INTO를 빼먹지 말아야 한다^^ 1개 이상일때에도 가능하다. select a,b,c into :a,:b,:c 이런식으로 여러개도 가능하다.
- Total
- Today
- Yesterday
- 오라클
- MySQL
- xe addon
- ocajp
- 파싱
- 문자열
- KG
- 이클립스
- 자바 smtp
- C
- 프로씨
- JDBC
- 파이썬
- xe애드온
- proc
- 플러터
- php
- 스크래핑
- 라이믹스 모듈
- XE3
- 인포믹스
- webix
- ocjap
- EC
- C언어
- 포인터
- Python
- esql
- 자바
- XE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |