程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 手冊中關於怎樣使用TQuery的誤導

手冊中關於怎樣使用TQuery的誤導

編輯:Delphi

Q:手冊中關於怎樣使用TQuery 的誤導

A:用Delphi開發數據庫時經常會用到TQuery, 手冊中有很多關於它的例子, 大致結構如下:

Query1.Close;
Query1.ParamByName(ID).AsString := 001;
Query1.Open;
String := Query1.FieldByName(ID).AsString;

很多用戶根據這段例子開發時會遇到速度慢, 資源耗用多, 甚至引發資源不足的異常。 這是為什麼呢, 其實是手冊的例子有些片面, 誤導了大家。

Delphi有一個重要的特性是DB aware, 把DBGrid與Query連接在一起, Query的結果集就會自動的顯示在DBGrid中。 為了保證DBGrid總顯示查詢結果, 需要Query總保持Active。 當修改Query的查詢條件時, 先關閉Query, 修改完查詢條件以後再打開它。 這就是上面代碼的含義。

問題是,當Query不和DB aware組件連接時, 比如在計算字段的事件中取其它表的內容, 應該怎樣寫代碼。 這時候不需要讓Query保持Active, 相反, 為了減少不必要的浪費, 應該是保持DeActive。 所以代碼應該如下:

Query1.ParamByName(ID).AsString := 001;
Query1.Open;
String := Query1.FieldByName(ID).AsString;
Query1.Close;

您在使用Query的時候要注意根據實際情況選擇適當的方法, 不要被手冊誤導。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved