请教Query控件open方法和execsql方法的差别,急急急~~!!

hnxrm 2002-10-25 04:05:35
query1.Active;
query1.Close;
query1.sql.Clear;
query1.SQL.Add('select * from dbo.T_txttodb');
//query1.Prepare;
//query1.ExecSQL;
query1.Open;
以上是真实源代码,为什么用open 方法可以得出结果,而用EXECSQL方法结果集却是空的?
...全文
349 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjwboy 2002-11-01
对于不用返回结果集的要用execsql
反之则用open;
insert ,update,delete就要用到execsql;
select就要用open
说得对,例子:
with query1 do
close;
SQL.Clear;
SQL.Add('Delete From Country Where Name=''England''');
ExecSQL;

回复
greenclass 2002-10-26
对于不用返回结果集的要用execsql
反之则用open;
insert ,update,delete就要用到execsql;
select就要用open
说得对,例子:
with query1 do
close;
SQL.Clear;
SQL.Add('Delete From Country Where Name=''England''');
ExecSQL;
回复
ForYouForMe 2002-10-26
以上都说得很对。
回复
Drate 2002-10-26
为 了让楼主理解的更深刻一些嘛!

所以不结帐是情有可原的Q
回复
guorui_wh 2002-10-26
都说道这个分上了,还不结贴,就不好了把..............
...............................................
回复
suke_007 2002-10-26
的确是这样地,一个返回结果集,一个不返回
回复
axcyy 2002-10-26
ExecSQL 过程
他执行SQL语句。与OPEN不同的是,他不返回查询结果,适合与执行
Insert Update Delete 语句,而Open()实用与执行Select 语句。

实例:
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('Delete From Country Where Name=''Argentina''');
Query1.ExecSQL;
回复
dzhcheng 2002-10-25
Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集。ExecSQL方法除了可执行Select语句外还可执行其它SQL语句(如Update、Insert、Delete等),此方法不返回执行的结果。

在程序设计过程中,有时不能确定SQL语句是否会返回一个查询,所以一般采用Try…Except模块保证程序的正确运行。

Try Query1.Open

Except

Query1.Exec SQL

END

上面的代码执行顺序是:首先用OPen方法执行,如果有错误,则会用Exec SQL方法

执行。



回复
qxj 2002-10-25
对于不用返回结果集的要用execsql
反之则用open;
insert ,update,delete就要用到execsql;
select就要用open
回复
qtercel 2002-10-25
open 返回结果集
ExecSQL 不返回结果集
select 是返回结果集的SQL语句,所以用open
像Insert,Update等用ExecSQL
回复
zhangchao_7622 2002-10-25
一个返回记录集。
一个不返回记录集。
Open常用于Select
ExecSql常用于insert Update delete 等等
回复
guorui_wh 2002-10-25
open是sql语句要返回数据集时用的(如:select )
execsql是执行不需要返回数据集时使用的(如:insert ,update,delete,select into,create等)
回复
Dhammacakkhu 2002-10-25
Open一般用于需返回数据集的语句,如Select * from tablename
ExecSQL一般用于UPDATE,DELETE,INSERT语句
回复
日总是我哥 2002-10-25
ExecSQL:不返回结果集,用于Insert,Update等操作!!
Open:返回结果集,用于Select等操作!!!

如果你的SQL 语句是Insert,Update等不返回数据集的语句而执行Open的话,系统会抛出异常!!
回复
发动态
发帖子
数据库相关
创建于2007-08-02

2440

社区成员

Delphi 数据库相关
申请成为版主
社区公告
暂无公告