[問題] CRecordset MoveNext 在第二次跑到底時會出錯?!
遇到的問題: (題意請描述清楚)
我現在正使用 CRecordset 進行
MoveFirst, MoveNext .... MoveFirst 的動作。
當 MoveNext 到 IsEOF == TRUE 時,
做一次 MoveFirst。
接下來再次跑 MoveNext 直到 IsEOF == TRUE 的前一筆資料時,
MoveNext 就會出錯了。
希望得到的正確結果:
第一次跑的時候可以跑到 IsEOF == TRUE,
第二次應該也要是跑到 IsEOF == TRUE 吧?
程式跑出來的錯誤結果:
First-chance exception : CRCException at memory location 0x0013e458..
First-chance exception : [rethrow] at memory location 0x00000000..
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VC++ 2008, Windows XP
有問題的code: (請善用置底文標色功能)
CRecordSet* db = new CRecordSet();
int count = 0;
int* pData = NULL;
int i;
db->m_strSort = "Index";
db->MoveFirst();
while(!db->IsEOF())
{
count++;
pCompareCatCon->MoveNext();
}
pData = new int[count];
db->MoveFirst();
for(i = 0; i < count; i ++)
{
pData[i] = db->m_Index;
if (!db->IsEOF())
db->MoveNext(); // 出錯!!
}
db->Close();
補充說明:
--
可愛的女天使天天勤奮努力的工作,天神為了獎勵她,
就送一台腳踏車給這位小天使。
天使很喜歡這台腳踏車,她就天天騎..天天騎...
她的工作都廢弛了...
天神知道之後,很生氣地跟她說:
「妳再不回崗位上工作,我就把腳踏車坐墊裝回去喔!」 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.133.252.2
→
06/04 18:47, , 1F
06/04 18:47, 1F