테스트 사이트 - 개발 중인 베타 버전입니다

잘되던 DB연동이 갑자기 무조건 결과값을 1만 뱉어내고 나와버리네요 ;;;...

· 12년 전 · 748 · 1
기존에 잘되던 로그 생성 에이전트 파일이 있는데 무조건 쿼리 결과값(nNum의 값)을 1로만 뱉어내고 나와버립니다.
원래는 15969, 19839 머 이런 큰 숫자값이 나와야 정상이었거든요. 소스 파일 건든거 하나도 없고, 서버주소만 바뀌었을 뿐인데...(주소도 제대로 바뀐거 확인했고요. init 설정파일에도 주소값 제대로 설정되어서 DB접속도 잘 됩니다. 다른 데이터들이나 쿼리문들은 다 정상적으로 주고받고요. 요놈만 말썽이네요;...)

다음은 소스입니다.

while(true)
{
bzero(Query,sizeof(Query));
sprintf(Query," select i_num from %s where dt_indate < DATE_FORMAT(DATE_ADD(NOW(), INTERVAL '-7' DAY), '%%Y-%%m-%%d 00:00:00') LIMIT 0, 100 ",_QUERY1_);

pDB->ExeQuery(Query);
pDB->StoreResult(&mrDataForRemove);

int nRows = mrDataForRemove.GetNumRows();
Print("Query : %s, Rows Count : %d",Query,nRows);
if(nRows <= 0) break;

for(int row=0;row < nRows;row++)
{
mrDataForRemove.FetchRow();
mrDataForRemove.GetData(1,nNum);

sprintf(Query," delete from %s where i_num = %d",_QUERY1_,nNum);
Print("DataRemove Query : %s", Query);
if(!pDB->ExeQuery(Query))
{
InsertErrorLog(Query);
bError = true;
break;
}

}
mrDataForRemove.FreeResult();
if(bError) break;
}
sleep(10);

기존에는 for문 안에서(nRows값은 현재 100입니다.) nNum의 숫자값만큼 반복문으로 다 뿌리고 나왔는데 무조건 mrDataForRemove.GetData(1,nNum); 이 함수에서 nNum 값이 1만 뿌리고는 반복문이 종료되는거 같습니다.


FetchRow()함수는
bool MysqlRes::FetchRow( )
{
if(!m_mysqlRes) return false;

m_mysqlRow = mysql_fetch_row(m_mysqlRes);
return true;
}
GetData함수는
bool MysqlRes::GetData( const int p_nIdx, int & p_nRetValue )
{
if(p_nIdx<1 || !m_mysqlRes) return false;

p_nRetValue = 0;
if(mysql_num_fields(m_mysqlRes)<p_nIdx) return false;
if(!m_mysqlRow[p_nIdx-1]) return false;

p_nRetValue = atoi(m_mysqlRow[p_nIdx-1]);

return true;

}

만약 쿼리문이 잘못되어 실행 실패라면 if(!pDB->ExeQuery(Query)) 이 루틴을 타고 들어가 에러로그파일에 값을 넣어야 하는데 에러로그 파일이 깨끗하고요. 도대체 뭐가 원인인지 잘 모르겠네요. ㅠ.ㅠ

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 1개

12년 전
select i_num from %s where dt_indate < DATE_FORMAT(DATE_ADD(NOW(), INTERVAL '-7' DAY), '%%Y-%%m-%%d 00:00:00') LIMIT 0, 100
이부분에서 날리신 쿼리문을 테이블명 넣어서 db에 직접 입력해 보세요

게시글 목록

번호 제목
284438
284437
284435
284430
284420
284417
284409
284401
284399
284397
284380
284378
284371
284370
284366
284364
284360
284357
284355
284354