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