gpt4 book ai didi

delphi - Query.ExecSQL 之后是否需要 Query.Close?

转载 作者:行者123 更新时间:2023-12-03 15:26:47 29 4
gpt4 key购买 nike

在 Delphi 中,每当我使用 TQuery 对数据库执行 SELECT 时,我都会在 Query.Open 后面加上 try..finally,并在finally 部分中使用 Query.Close。这对我来说很有意义,因为否则查询仍然会不必要地存储数据(使用内存)。

但是我的问题与我使用查询执行 INSERT 或 DELETE 时有关,因此需要使用 Query.ExecSQL 执行 SQL我的问题是,我必须在 Query.ExecSQL 之后使用 Query.Close 吗?

我的想法是,因为这是要在数据库上执行的命令,大概不会向查询返回任何数据,所以不需要执行 Query.Close但也许有人对调用 Query.ExecSQL 后可能返回并存储在查询中的内容(如果有的话)有更深入的了解,对此 Query.Close 会有所帮助?

谢谢。

最佳答案

不,不需要,因为 ExecSQL 不维护记录集。

来自 documentation (强调我的):

Executes the SQL statement for the query. Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

Note: For SELECT statements, call Open instead of ExecSQL.

ExecSQL prepares the statement in SQL property for execution if it has not already been prepared. To speed performance, an application should ordinarily call Prepare before calling ExecSQL for the first time.

关于delphi - Query.ExecSQL 之后是否需要 Query.Close?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26179696/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com