MySQL C++ 커넥터를 사용하고 있고 다음과 같은 방식으로 결과 집합을 반복하려고합니다. 응용 프로그램은 데이터 형식에 의존하지 않고 모든 열을 반복해야합니다. 코드는 데이터 형식을 catch 한 다음 처리해야합니다. 문제는 내가 테스트하고있는 테이블에 16 개의 열이 있지만 첫 번째 코드 만 통과한다는 것입니다.결과 집합 루핑
try
{
driver = get_driver_instance();
con = driver->connect(connectionString, str_username, str_password);
con->setSchema(str_schema);
stmt = con->createStatement();
res = stmt->executeQuery(selectquery);
res_meta = res->getMetaData();
string datatype;
int columncount = res_meta->getColumnCount();
for (int i = 0; i < columncount; i++)
{
while (res->next())
datatype = res_meta->getColumnTypeName(i + 1);
{
if(datatype == "INT")
{
switch (res_meta->getColumnDisplaySize(i + 1))
{
case 64:
break;
case 32:
break;
default:
break;
}
}
}
}
catch(sql::SQLException &e){}
코드를 디버그하려고하면 columncount를 살펴보십시오 – duDE
외부 'for'에서 'res'를 재설정하지 않으므로 1 개의 결과 만있는 경우 while은 한 번 실행 한 다음 다른 for 루프 반복을 실행합니다 그것은 아무 것도하지 않을 것이다. –