熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

程序開發小技巧:Delphi的Query控件

2013-11-23 17:29:16  來源: Delphi編程 
用Delphi做過數據庫編程的朋友肯定熟悉Query控件這個控件實現的功能是執行一條SQL語句或一個SQL腳本在我們進行數據庫開發中使用的頻率非常高筆者在多年的使用過程中發現用好這個控件有兩點要非常注意
  
  第一點是區分好Query控件的Open方法和ExecSQL方法這兩個方法都可以實現執行SQL語句但要根據不同情況分別使用如果這條SQL語句將返回一個結果集必須使用Open方法如果不返回一個結果集則要使用ExecSQL方法例如
  
  ……
  
  Query:Tquery
  
  Query:Tquery
  
  ……
  
  QueryClose;
  
  QuerySQLClear;
  
  QuerySQLAdd(select * from AA);
  
  QueryOpen;
  
  ……
  
  QueryClose;
  
  QuerySQLClear;
  
  QuerySQLAdd(delete AA);
  
  QueryExecSQL;
  
  ……
  
  上述的例子中Query所執行的SQL語句將返回一個結果集因此必須用Open方法而Query所執行的是一條刪除表記錄語句不返回結果集因此用ExecSQL方法
  
  第二點是如果Query控件用Open方法執行SQL語句並且所用的SQL語句訪問的是一張或幾張頻繁使用的表在執行完SQL語句後一定要調用SQL的FetchAll方法能大大地減少死鎖發生的概率例如
  
  ……
  
  Query:Tquery
  
  ……
  
  QueryClose;
  
  QuerySQLClear;
  
  QuerySQLAdd(select * from AA);
  
  QueryOpen;
  
  QueryFetchAll;
  
  ……
  
  在上述的例子中如果AA是一張被頻繁訪問的表在對這個表執行這一條select語句的同時如果恰好有其他人對這張表執行刪除或更新操作便有可能發生死鎖QueryFetchAll這條語句實現的功能是釋放加在表AA上的鎖這樣死鎖的發生概率可以大大減少避免死鎖對我們將來進行大型數據庫開發尤為重要
From:http://tw.wingwit.com/Article/program/Delphi/201311/24666.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.