下是Delphi數(shù)據(jù)庫應(yīng)用程序中常見錯誤、原因/解決方法:
數(shù)據(jù)感知控件DataSource屬性未設(shè)置或者設(shè)置錯誤(鏈接為其他的DataSource)
原因:在設(shè)計時不小心改動,拷貝粘貼過程中未全部更改
測試時標(biāo)準(zhǔn)代碼中沒有數(shù)據(jù),無法進行測試
解決:確定需要輸入數(shù)據(jù)的表格的先后順序,在依次輸入測試數(shù)據(jù),再進行測試
wwFilterDialog中進行數(shù)據(jù)過濾時,應(yīng)該顯示字段列表的字段沒有顯示,不方便輸入
解決:判斷字段,查找標(biāo)碼填充字段列表
運行程序時出現(xiàn)字段未找到的錯誤
原因:數(shù)據(jù)庫進行了更改,而DataSet的字段列表沒有更新
用DBGrid顯示數(shù)據(jù)時,為方便閱讀,單數(shù)行與奇數(shù)行用不同顏色顯示,在數(shù)據(jù)量時,瀏覽數(shù)據(jù)時明顯感覺到DBGrid數(shù)據(jù)刷新不夠,單數(shù)行與奇數(shù)行的顏色不能正確顯示
原因:DBGrid的 DataSource的DataSet中有較多的查找字段
解決:將部分查找字段去除
窗體標(biāo)題為英文
原因:設(shè)計后未仔細(xì)檢查
解決:更改為中文
DBNavigator中“刷新”按鈕點擊后出錯
原因未知
解決:去除該按鈕
與dxDBGrid配套使用的DBNavigator,在dxDBGrid的模式為LoadAll時,導(dǎo)航按鈕與期望的方式不同
原因:dxDBGrid在LoadAll模式時,與DataSet中的數(shù)據(jù)不一致
解決:去除導(dǎo)航中的部分按鈕
由存儲過程得到的數(shù)據(jù)集對應(yīng)的DBNavigator的“刷新”出錯
原因:不清
解決:去除該按鈕
窗體Show后,進入數(shù)據(jù)編輯后,部分查找字段編輯時出現(xiàn)數(shù)據(jù)集未打開
原因:數(shù)據(jù)集打開順序有問題
解決:調(diào)整數(shù)據(jù)集的打開順序,讓標(biāo)碼數(shù)據(jù)集先打開
出現(xiàn)未找到存儲過程的錯誤
原因:數(shù)據(jù)庫的存儲過程進行的重命名
解決:更改DataSource中的存儲程序名稱
wwFilterDialog的標(biāo)題空白
解決:改為與數(shù)據(jù)集相關(guān)的標(biāo)題,如“篩選計劃”
窗體在1024*768下設(shè)計時,即使窗體為800*600,在屏幕分辨率為800*600的時候出現(xiàn)窗體中的內(nèi)容不能全部顯示的現(xiàn)象
解決:1024*768下設(shè)計800*600時預(yù)留一定的空間
出現(xiàn)“Couldno’t perform the edit because another user changed the record”錯誤
原因:未知
dxDBGrid在將字段拖曳到分組欄時,不能進行編輯:dxDBGrid中的當(dāng)前記錄與數(shù)據(jù)感知控件的當(dāng)前記錄不一致
解決:將二者在不同部分實現(xiàn),不在同一窗體實現(xiàn)
出現(xiàn)“General SQL Error”錯誤
原因:未知。但發(fā)現(xiàn)在FormShow中打開表很多,嘗試將其中部分表不打開時,錯誤消失,且不打開的表不同時,錯誤都消失
(系統(tǒng)休眠后)第一次連接數(shù)據(jù)庫時(用戶、口令均正確),出現(xiàn)錯誤,但第二次則正常
原因:未知
打開/保存對話框未設(shè)置過濾條件
解決:設(shè)置合理的Filter、DefaultExt
防差錯措施不完善。(如輸入數(shù)據(jù)(數(shù)字)出錯時不報警)
解決:保存前驗證正確性判斷,設(shè)置Mask
數(shù)據(jù)感知控件DBComboBox應(yīng)可進行選擇和輸入的輸入框,不能進行輸入
解決:更改Style屬性為csDropDown
其他更一般的問題:
模態(tài)對話框,Escape鍵不起作用
解決:合理設(shè)置Button的Canceled屬性
模態(tài)對話框,回車鍵不起默認(rèn)作用
解決:合理設(shè)置Button的Defaulted屬性
使用Tab鍵后焦點跳轉(zhuǎn)順序無規(guī)律
解決:設(shè)置控件的TabOrder屬性
數(shù)據(jù)感知控件DataSource屬性未設(shè)置或者設(shè)置錯誤(鏈接為其他的DataSource)
原因:在設(shè)計時不小心改動,拷貝粘貼過程中未全部更改
測試時標(biāo)準(zhǔn)代碼中沒有數(shù)據(jù),無法進行測試
解決:確定需要輸入數(shù)據(jù)的表格的先后順序,在依次輸入測試數(shù)據(jù),再進行測試
wwFilterDialog中進行數(shù)據(jù)過濾時,應(yīng)該顯示字段列表的字段沒有顯示,不方便輸入
解決:判斷字段,查找標(biāo)碼填充字段列表
運行程序時出現(xiàn)字段未找到的錯誤
原因:數(shù)據(jù)庫進行了更改,而DataSet的字段列表沒有更新
用DBGrid顯示數(shù)據(jù)時,為方便閱讀,單數(shù)行與奇數(shù)行用不同顏色顯示,在數(shù)據(jù)量時,瀏覽數(shù)據(jù)時明顯感覺到DBGrid數(shù)據(jù)刷新不夠,單數(shù)行與奇數(shù)行的顏色不能正確顯示
原因:DBGrid的 DataSource的DataSet中有較多的查找字段
解決:將部分查找字段去除
窗體標(biāo)題為英文
原因:設(shè)計后未仔細(xì)檢查
解決:更改為中文
DBNavigator中“刷新”按鈕點擊后出錯
原因未知
解決:去除該按鈕
與dxDBGrid配套使用的DBNavigator,在dxDBGrid的模式為LoadAll時,導(dǎo)航按鈕與期望的方式不同
原因:dxDBGrid在LoadAll模式時,與DataSet中的數(shù)據(jù)不一致
解決:去除導(dǎo)航中的部分按鈕
由存儲過程得到的數(shù)據(jù)集對應(yīng)的DBNavigator的“刷新”出錯
原因:不清
解決:去除該按鈕
窗體Show后,進入數(shù)據(jù)編輯后,部分查找字段編輯時出現(xiàn)數(shù)據(jù)集未打開
原因:數(shù)據(jù)集打開順序有問題
解決:調(diào)整數(shù)據(jù)集的打開順序,讓標(biāo)碼數(shù)據(jù)集先打開
出現(xiàn)未找到存儲過程的錯誤
原因:數(shù)據(jù)庫的存儲過程進行的重命名
解決:更改DataSource中的存儲程序名稱
wwFilterDialog的標(biāo)題空白
解決:改為與數(shù)據(jù)集相關(guān)的標(biāo)題,如“篩選計劃”
窗體在1024*768下設(shè)計時,即使窗體為800*600,在屏幕分辨率為800*600的時候出現(xiàn)窗體中的內(nèi)容不能全部顯示的現(xiàn)象
解決:1024*768下設(shè)計800*600時預(yù)留一定的空間
出現(xiàn)“Couldno’t perform the edit because another user changed the record”錯誤
原因:未知
dxDBGrid在將字段拖曳到分組欄時,不能進行編輯:dxDBGrid中的當(dāng)前記錄與數(shù)據(jù)感知控件的當(dāng)前記錄不一致
解決:將二者在不同部分實現(xiàn),不在同一窗體實現(xiàn)
出現(xiàn)“General SQL Error”錯誤
原因:未知。但發(fā)現(xiàn)在FormShow中打開表很多,嘗試將其中部分表不打開時,錯誤消失,且不打開的表不同時,錯誤都消失
(系統(tǒng)休眠后)第一次連接數(shù)據(jù)庫時(用戶、口令均正確),出現(xiàn)錯誤,但第二次則正常
原因:未知
打開/保存對話框未設(shè)置過濾條件
解決:設(shè)置合理的Filter、DefaultExt
防差錯措施不完善。(如輸入數(shù)據(jù)(數(shù)字)出錯時不報警)
解決:保存前驗證正確性判斷,設(shè)置Mask
數(shù)據(jù)感知控件DBComboBox應(yīng)可進行選擇和輸入的輸入框,不能進行輸入
解決:更改Style屬性為csDropDown
其他更一般的問題:
模態(tài)對話框,Escape鍵不起作用
解決:合理設(shè)置Button的Canceled屬性
模態(tài)對話框,回車鍵不起默認(rèn)作用
解決:合理設(shè)置Button的Defaulted屬性
使用Tab鍵后焦點跳轉(zhuǎn)順序無規(guī)律
解決:設(shè)置控件的TabOrder屬性

