7、滾動記錄
crecordset提供了幾個成員函式用來在記錄集中滾動。當用這些函式滾動到乙個新記錄時,框架會自動地把新記錄的內容拷貝到域資料成員中。
void movenext( ); //前進乙個記錄
void moveprev( ); //
後退乙個記錄
void movefirst( ); //
滾動到記錄集中的第乙個記錄
void movelast( ); //
滾動到記錄集中的最後乙個記錄
//該函式用於滾動到由引數nrows指定的絕對位置處。若nrows為負數,則從後往前滾動。例如,當nrows為-1時,函式就滾動到記錄集的末尾。注意,該函式不會跳過被刪除的記錄。
void setabsoluteposition( long nrows );
注意:如果記錄集是空的,那麼呼叫上述函式將產生異常。另外,必須保證滾動沒有超出記錄集的邊界。
long getrecordcount( ) const;//呼叫getrecordcount可獲得記錄集中的記錄總數。
注意:getrecordcount返回的實際上是使用者在記錄集中滾動的最遠距離。要想真正返回記錄總數,只有呼叫movenext移動到記錄集的末尾(movelast不行)。
8、修改、新增和刪除記錄
(1)修改記錄
1)呼叫edit成員函式。呼叫該函式後就進入了編輯模式,程式可以修改域資料成員。注意不要在乙個空的記錄集中呼叫edit,否則會產生異常。
2)設定域資料成員的新值。
3)呼叫update完成編輯。update把變化後的記錄寫入資料來源並結束編輯模式。
m_changelineset.edit();//字段設定...
m_changelineset.m_date=datatemp.date;
//更新記錄
m_changelineset.update();
//重建記錄集
m_changelineset.requery();
(2)新增記錄
1)呼叫addnew成員函式。呼叫該函式後就進入了新增模式,該函式把所有的域資料成員都設定成null(注意,在資料庫術語中,null是指沒有值,這與c++的null是不同的)。與edit一樣,addnew會把當前域資料成員的內容儲存在乙個緩衝區中。
2)設定域資料成員。
3)呼叫update。update把域資料成員中的內容作為新記錄寫入資料來源,從而結束了新增。
如果記錄集是快照,那麼在新增乙個新的記錄後,需要呼叫requery重新查詢,因為快照無法反映新增操作。
ifm_changelineset.addnew();
//字段設定...
m_changelineset.m_date=datatemp.date;
//更新記錄
m_changelineset.update();
//重建記錄集
m_changelineset.requery();
}
(3)刪除記錄
1)呼叫delete成員函式。該函式會同時給記錄集和資料來源中當前記錄加上刪除標記。注意不要在乙個空記錄集中呼叫delete,否則會產生乙個異常。
2)滾動到另乙個記錄上以跳過刪除記錄。
//刪除記錄集,不需要update
if(m_changelineset.canupdate())
m_changelineset.delete();
在對記錄集進行更改以前,程式也許要呼叫下列函式來判斷記錄集是否是可以更改的,因為如果在不能更改的記錄集中進行修改、新增或刪除將導致異常的產生。
bool canupdate( ) const; //返回true表明記錄是可以修改、新增和刪除的。
返回true則表明可以新增記錄。
MFC ODBC資料庫程式設計
一 mfc提供的odbc資料庫類 visual c 的mfc基類庫定義了幾個資料庫類。在利用odbc程式設計時,經常要使用到cdatabase 資料庫類 crecordset 記錄集類 和crecordview 可視記錄集類 cdatabase類 提供了對資料來源的連線,通過它可以對資料來源進行操作...
資料庫 MFC ODBC 二
三 crecordset類 1 isbof與iseof 1 isbof 如果記錄集沒有記錄,或已經向前游動到第乙個記錄之前,則返回非零 否則返回0。詳細說明如下 1 訪問open函式之後,如果記錄集沒有任何記錄,isbof返回非零。當你開啟乙個至少包含乙個記錄的記錄集,第乙個記錄是當前記錄,此時is...
MFC ODBC資料庫開發技術
1.mfc odbc 主要類的介紹 visual c 提供了mfc odbc 類,封裝了odbc api,這使得利用mfc來建立odbc的應用程式非常簡便。在mfc odbc類中,常用的類有cdatabase 資料庫類 crecordset 記錄集類 crecordview 可視記錄集類 和cdbe...