您现在的位置是:首页
>
列表控件 程序开发小技巧:Delphi的Query控件
程序开发小技巧:Del hi的Query控件 用Del hi做过数据库编程的朋友肯定熟悉Query控件 这个控件实现的功能是执行一条SQL语句或一个SQL脚本 在我们进行数据库开发中使用的频率非常高

程序开发小技巧:Delphi的Query控件
用Delphi做过数据库编程的朋友肯定熟悉Query控件 这个控件实现的功能是执行一条SQL语句或一个SQL脚本 在我们进行数据库开发中使用的频率非常高 笔者在多年的使用过程中发现用好这个控件有两点要非常注意 第一点是 区分好Query控件的Open方法和ExecSQL方法 这两个方法都可以实现执行SQL语句 但要根据不同情况分别使用 如果这条SQL语句将返回一个结果集 必须使用Open方法 如果不返回一个结果集 则要使用ExecSQL方法 例如 …… Query :Tquery Query :Tquery …… Query Close; Query SQL Clear; Query SQL Add( select * from AA ); Query Open; …… Query Close; Query SQL Clear; Query SQL Add( delete AA ); Query ExecSQL; …… 上述的例子中 Query 所执行的SQL语句将返回一个结果集 因此必须用Open方法 而Query 所执行的是一条删除表记录语句 不返回结果集 因此用ExecSQL方法 第二点是 如果Query控件用Open方法执行SQL语句 并且所用的SQL语句访问的是一张或几张频繁使用的表 在执行完SQL语句后 一定要调用SQL的FetchAll方法 能大大地减少死锁发生的概率 例如 …… Query :Tquery …… Query Close; Query SQL Clear; Query SQL Add( select * from AA ); Query Open; Query FetchAll; …… 在上述的例子中 如果AA是一张被频繁访问的表 在对这个表执行这一条select语句的同时 如果恰好有其他人对这张表执行删除或更新操作 便有可能发生死锁 Query FetchAll这条语句实现的功能是释放加在表AA上的锁 这样死锁的发生概率可以大大减少 避免死锁 对我们将来进行大型数据库开发尤为重要 lishixinzhi/Article/program/Delphi/201311/24666 很赞哦! (1036)