안녕하세요.
얼마전에 PPAS를 접하게 된 후 ECPG 코딩 까지 진행을 하다 문제가 발생하여 다시 문의를 드립니다..;;
제가 처음 AIX 에서 ECPG 테스트를 진행하였는데 문제없이 컴파일 되고 테스트도 성공하였습니다.
그 후 소스를 solaris로 옮긴 후 컴파일을 진행하였는데 아래와 같은 warning이 발생을 하고 있습니다.
test.pgc:40: warning: passing arg 5 of `ECPGdo' makes integer from pointer without a cast
만약 에러 무시하고 실행을 하게 되면 세그멘테이션 폴트 받고 죽습니다.;;
아래 테스트 소스와 컴파일 한 방식도 같이 적겠습니다.
아시는 분 있으시면 코멘트 부탁 드립니다~~;;
#include
#include
#include
EXEC SQL BEGIN DECLARE SECTION;
const char dbname[50];
int nFlag;
char szTmp[50];
char szTmp2[50];
EXEC SQL END DECLARE SECTION;
int main()
{
int i = 0;
EXEC SQL CONNECT TO dbname@xxx.xxx.xxx.xxx:5444 USER username IDENTIFIED BY passwd;
if(SQLCODE != 0)
{
printf("PostgresQL DB Connection Fail!!! i:[%d]\n", i);
return -1;
}
else
{
EXEC SQL SELECT current_database() INTO :dbname;
printf("current=%s \n", dbname);
printf("PostgresQL DB Connection Success!!! \n");
EXEC SQL
SELECT STATUS_FLAG
INTO :nFlag
FROM TEST_TABLE
WHERE DB_NAME = 'PPAS_1';
printf("TEST_TABLE Table select Success!! [%d][%d]\n", nFlag, sqlca.sqlcode);
EXEC SQL
SELECT USER
INTO :szTmp
FROM DUAL;
printf("DUAL Table select Success!! [%s]\n", szTmp);
EXEC SQL COMMIT;
}
EXEC SQL DISCONNECT;
return 0;
}
ecpg -c test.pgc
gcc -I$(ECPGHOME)/include -L(ECPGHOME)/lib -o test test.c -lecpg -lpq
|