有一段程序,100次循环,每次循环都要执行一个sql,但又不能重复执行,执行一次就要关闭一次,请看下面代码,我问了好几个人,都说没有办法,难道真没有办法了吗??
rs_current_question->Open("select top 100 * from subject order by selected_count",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

rs_current_question->MoveFirst(); for(int j=0;j<100 && !rs_current_question->adoEOF;j++){ _variant_t id_temp = rs_current_question->GetCollect("id"); 
_variant_t correct_key_temp = rs_current_question->GetCollect("key"); 
CString strI_temp;
strI_temp.Format("%d",j+1); CString sqlAnswer_temp;
sqlAnswer_temp="select * from answer_info where id = " + strI_temp;

_variant_t varAnswerSQL_temp(sqlAnswer_temp); temp_recordset->Open(varAnswerSQL_temp,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
temp_recordset->PutCollect("subject_id",_variant_t(id_temp));
temp_recordset->PutCollect("org_subject_id",_variant_t("0"));
temp_recordset->PutCollect("write_key",_variant_t(" "));
temp_recordset->PutCollect("correct_key",correct_key_temp);
temp_recordset->PutCollect("is_correct",_variant_t(" "));
temp_recordset->Update();
temp_recordset->Close(); //更新selected_count + 1
_variant_t selectedCount = rs_current_question->GetCollect("selected_count"); 
int c2 = (int)selectedCount;
c2++;
rs_current_question->PutCollect("selected_count",c2);
rs_current_question->Update(); rs_current_question->MoveNext();
}

rs_current_question->Close();