刪除sql server數據庫中內容時出現的錯誤

 
環境:操作系統win2000pro,數據庫sql sever 2000,編程vc6.0,ODBC,用類CRecordSet連結數據表。
症狀一:在用CRecordSet::Delete()對錶中內容進行刪除時,出現“多行數據更新”的錯誤
原因:在數據表中有多行內容完全相同的行,在刪除當前記錄時,所有相同的項均被刪除。
解決辦法:在表中增中一個列表示序號,可由數據表自動增加序號,消失內容相同的行。
 
症狀二:在出現症狀一的情況下,再對數據表進行操作,由會出現“無當前記錄,操作失敗”的錯誤提示。
原因:在對錶中行進行刪除後,會調用CRecordSet::MoveNext()來跳過被刪除的行,而因爲多行相同行同時被刪除,導致被刪除的行不止一行,而具體刪除了多少行又未知,因此調用一個MoveNext()只跳過一個被刪除行,但此刻當前記錄仍停在其它被刪除的行上,因此其後再對錶操作出現無當前記錄的提示。
解決辦法:只要消失了內容相同行的問題,則此問題迎刃而解。
 
CString的字符內容檢查方法:
可調用CString:;GetAt(int index)來獲得需要檢查的位的字符。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章