Oracle Pro*C, MSVC++ 예제 01 : 1행 조회
//===============================================================
// PC001.PC
// PROC : 1행 조회 : Select Count
// SKY 2013-11-27
//===============================================================
#include <stdio.h>
#include <stdlib.h>
#include <sqlca.h>
//EXEC SQL INCLUDE SQLCA; (#include <sqlca.h>와 동일)
//int main(int argc, char **argv)
int main() {
EXEC SQL BEGIN DECLARE SECTION;
char dbconn[50] = "lbah_home/lbahtech@LBAH";
int cntrow = 0;
EXEC SQL END DECLARE SECTION;
printf("================================================== \n");
printf("★ Oracle Pro*C ★ Microsoft Visual C++ ★ SKY!! ★\n");
printf("PC001.PC ▶ 1행 조회 : Select Count \n");
printf("DB접속 ▶ dbconn : %s \n",dbconn);
printf("================================================== \n");
printf("sqlca.sqlcode : 최초값 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : 최초값 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL CONNECT :dbconn;
printf("sqlca.sqlcode : CONNECT 후 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : CONNECT 후 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
if(sqlca.sqlcode < 0) {
printf("작업 실패 ! ErrorCode(%d) : %s ----- \n", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
//EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
EXEC SQL SELECT count(*)
INTO :cntrow
FROM ATB_STT
WHERE AAA > '20'
//WHERE AAA > '99'
;
printf("sqlca.sqlcode : SELECT 후 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : SELECT 후 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
if(sqlca.sqlcode < 0) {
printf("작업 실패 ! ErrorCode(%d) : %s ----- \n", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
printf("-------------------------------------------------- \n");
printf("ATB_STT 테이블 행(Row)수 : %d 행\n", cntrow);
printf("-------------------------------------------------- \n");
EXEC SQL COMMIT WORK RELEASE;
printf("sqlca.sqlcode : COMMIT 후 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : COMMIT 후 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
if(sqlca.sqlcode < 0) {
printf("작업 실패 ! ErrorCode(%d) : %s ----- \n", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
printf("작업 완료 !!! ============================= SKY == \n");
printf("================================================== \n");
return 0;
}
//===============================================================
// PC002.PC
// PROC : 1행 조회 : Select 1 Row
// SKY 2013-11-27
//===============================================================
#include <stdio.h>
#include <stdlib.h>
#include <sqlca.h>
//EXEC SQL INCLUDE SQLCA; (#include <sqlca.h>와 동일)
//int main(int argc, char **argv)
int main() {
EXEC SQL BEGIN DECLARE SECTION;
char dbconn[50] = "lbah_home/lbahtech@LBAH";
VARCHAR aaaaa[2];
VARCHAR bbbbb[3];
int ddddd;
EXEC SQL END DECLARE SECTION;
printf("================================================== \n");
printf("★ Oracle Pro*C ★ Microsoft Visual C++ ★ SKY!! ★\n");
printf("PC002.PC ▶ 1행 조회 : Select 1 Row \n");
printf("DB접속 ▶ dbconn : %s \n",dbconn);
printf("================================================== \n");
printf("sqlca.sqlcode : 최초값 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : 최초값 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL CONNECT :dbconn;
printf("sqlca.sqlcode : CONNECT 후 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : CONNECT 후 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
if(sqlca.sqlcode < 0) {
printf("작업 실패 ! ErrorCode(%d) : %s ----- \n", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
//EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
EXEC SQL SELECT AAA, BBB, DDD
INTO :aaaaa, :bbbbb, :ddddd
FROM ATB_STT
WHERE ROWNUM = 1
//WHERE AAA > '20'
//WHERE AAA > '99'
;
printf("sqlca.sqlcode : SELECT 후 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : SELECT 후 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
if(sqlca.sqlcode == -2112) {
printf("작업 실패 ! 두 행 이상 ----- \n");
//EXEC SQL ROLLBACK WORK RELEASE;
//exit(0);
}
if(sqlca.sqlcode == 1403) {
printf("작업 실패 ! 한 행도 없음 ----- \n");
//EXEC SQL ROLLBACK WORK RELEASE;
//exit(0);
}
if(sqlca.sqlcode != 0) {
printf("작업 실패 ! ErrorCode(%d) : %s ----- \n", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
printf("-------------------------------------------------- \n");
//printf("AAA컬럼 : [%s], BBB컬럼 : [%s], DDD컬럼 : [%s] \n", aaaaa,bbbbb,ddddd);
printf("AAA컬럼 : [%s], BBB컬럼 : [%s], DDD컬럼 : [%d] \n", aaaaa.arr,bbbbb.arr,ddddd);
printf("-------------------------------------------------- \n");
EXEC SQL COMMIT WORK RELEASE;
printf("sqlca.sqlcode : COMMIT 후 ----- %d ----- \n", sqlca.sqlcode);
printf("sqlca.sqlerrm.sqlerrmc : COMMIT 후 ----- %s ----- \n", sqlca.sqlerrm.sqlerrmc);
if(sqlca.sqlcode < 0) {
printf("작업 실패 ! ErrorCode(%d) : %s ----- \n", sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(0);
}
printf("작업 완료 !!! ============================= SKY == \n");
printf("================================================== \n");
return 0;
}
'정보과학 IT' 카테고리의 다른 글
SOAP & RESTful (0) | 2013.12.18 |
---|---|
ProC ↔ Oracle ↔ MicroSoftVC++ 환경 설정 (0) | 2013.12.02 |
Oracle Pro*C 실무프로젝트 활용서 (0) | 2013.11.26 |
(MSVC++) fatal error C1853 에러 해결 방법 (0) | 2013.11.25 |
Oracle Pro*C, MSVC++ 환경설정 (◀pcscfg.cfg 설정 포함) (0) | 2013.11.22 |