DBX中的 SQLTable / SQLQuery / SQLDataSet 都有支援「RecordCount」函式(統計資料集合現有多少筆數)
實際在用的時候發現並不是這麼好用,常常 run 到該處就發生例外錯誤(Exception)
不少人認為這是DBX的BUG...
最近閒來沒事在查這方面的資訊,發現原來BCB的HELP中有解釋不能應用的場合
原來DBX的元件是由「TCustomSQLDataSet」繼承「TDataSet」而來
然「TCustomSQLDataSet」有改寫 RecordCount 的些許內容,一般簡易查詢依然可以利用
但如果遇到以下情況則會跳出例外錯誤:
1. The dataset represents stored procedure.
1. 資料集為 Stored Procedure 表示式
2. The dataset represents a query that contains parameters.
2. 資料集為帶有參數查詢的表示式
3. The dataset represents a multi-table join.
3. 資料集為多表合併的表示式
不過HELP中並沒有提到這樣的限制的理由 (汗)
解決的方式有以下兩種:
1. 利用ClientDataSet來處理RecordCount
2.使用SQL的COUNT(*)來統計
以上,做個小參考吧~~~(笑)
沒有留言:
張貼留言