이구문이 정상적으로 돌아가는지 알구 싶네요..
EXEC SQL EXECUTE IMMEDIATE :sqlcmd;
IMMEDIATE 구문을 쓴이유는 월이 바뀔때마다 table이 바껴야 해서 그렇게 했습니다.
글구 IMMEDIATE 구문을 안쓰고 그냥 돌렸더니 insert 가되다가
db connect 에러가 납니다. 쓰는 속도는 초당 10 건정도의 데이타를 입력시겼고요
혹시 db disconnect 를 안해줘서 그런걸까요.
disconnect 시점은 어떤때 해주는게 좋을 까요? 맘 같아서는 connect 하구
진행처리 하구나서 disconnect를 하고 싶은데.. 어떤 방법이 좋은건지 조언좀 부탁드립니다.
거의 마지막 단계 까지 왔는데.. 이룬....답변 부탁드립니다..그럼 꾸벅
void dbINSERT_IN(readBuff, nbytes)
char *readBuff;
int nbytes;
{
EXEC SQL BEGIN DECLARE SECTION;
char sqlcmd[500];
EXEC SQL END DECLARE SECTION;
char month[3];
IN_INFO_DB inInfoDb;
memset(&inInfoDb, 0x00, sizeof(inInfoDb));
memset(month, 0x00, sizeof(month));
memset(sqlcmd, 0x00, sizeof(sqlcmd));
str_offset_copy_IN(&inInfoDb, readBuff, nbytes, month);
EXEC SQL CONNECT TO 'test';
sprintf(sqlcmd, "INSERT INTO In%s112(status,ktCode,pfCode,outktCode,outpfCode,acdTime,serverTi
me,ddd,telNo) VALUES(:%s, :%s, :%s, :%s, :%s, :%s, :%s, :%s, :%s)", month, inInfoDb.statusPart,
inInfoDb.KTregPart, inInfoDb.chungRegPart, inInfoDb.outKTregPart, inInfoDb.outChungRegPart, inIn
foDb.acdTime, inInfoDb.Servtime, inInfoDb.regionNo, inInfoDb.telNo);
EXEC SQL EXECUTE IMMEDIATE :sqlcmd;
EXEC SQL COMMIT;
return;
}
|