티스토리 뷰
보통 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,sizeof(work2));
memcpy(work2,"a2",sizeof(work2));
memcpy(s.a,"a3",sizeof(s.a));
EXEC SQL connect to "dbname";
EXEC SQL DECLARE test_cur SCROLL CURSOR FOR
SELECT a
FROM test
WHERE a=:s.a
;
EXEC SQL OPEN test_cur;
while(1){
EXEC SQL FETCH NEXT test_cur INTO :work1;
if(sqlca.sqlcode==100){
break;
}else if(sqlca.sqlcode!=0)
printf("error=[%d]\n",sqlca.sqlcode);
}
printf("work1=[%s]\n",work1;
}
EXEC SQL CLOSE test_cur;
EXEC SQL FREE test_cur;
}
그래서 이번에는 구조체를 사용하여 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,sizeof(work2));
memcpy(work2,"a2",sizeof(work2));
memcpy(s.a,"a3",sizeof(s.a));
EXEC SQL connect to "dbname";
EXEC SQL DECLARE test_cur SCROLL CURSOR FOR
SELECT a
FROM test
WHERE a=:s.a
;
EXEC SQL OPEN test_cur;
while(1){
EXEC SQL FETCH NEXT test_cur INTO :work1;
if(sqlca.sqlcode==100){
break;
}else if(sqlca.sqlcode!=0)
printf("error=[%d]\n",sqlca.sqlcode);
}
printf("work1=[%s]\n",work1;
}
EXEC SQL CLOSE test_cur;
EXEC SQL FREE test_cur;
}
'C언어' 카테고리의 다른 글
[ec/esql/pc/proc/프로씨강좌] 호스트변수 구조체에 값넣기 (0) | 2017.02.21 |
---|---|
[ec/esql/pc/proc/프로씨강좌] 구조체와 함수를 이용한 esql 프로그래밍 (0) | 2017.02.21 |
[ec/proc/esql/프로씨 강좌] 호스트변수를 사용해서 where에서 사용하는 방법 (0) | 2017.02.20 |
[c언어] 문자열 복사 및 붙이기 strcpy, strcat (0) | 2017.02.17 |
[c언어강좌] 문자열 다루기 "문자열 상수는 포인터다" 널문자 '\0' 까지 (2) | 2017.02.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- XE3
- 이클립스
- 파이썬
- 자바 smtp
- 포인터
- Python
- 자바
- ocjap
- 플러터
- 라이믹스 모듈
- esql
- C언어
- xe addon
- xe애드온
- ocajp
- 인포믹스
- proc
- C
- 파싱
- 스크래핑
- 프로씨
- 문자열
- webix
- php
- KG
- XE
- MySQL
- 오라클
- JDBC
- EC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함