[問題] CRecordset MoveNext 在第二次跑到底時會出錯?!

看板C_and_CPP作者 (この怨み,地獄へ流します)時間14年前 (2010/06/04 18:06), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 我現在正使用 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
文章代碼(AID): #1C2D0R7_ (C_and_CPP)