菜鸟问题11

george77 2002-04-24 07:30:08
query.execsql怎么没有返回值,我怎么判断sql语句是否成功执行?
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ihihonline 2002-04-24
  • 打赏
  • 举报
回复
楼上的这位兄弟,不应该是这样的;
select只是返回数据,不进行提交就不应该execsql
只用open就可以
LuZhou 2002-04-24
  • 打赏
  • 举报
回复
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from tablename');
Query1.ExecSQL;
Query1.Open;
ihihonline 2002-04-24
  • 打赏
  • 举报
回复
NO.1
try
query.execsql
except
on e:exception do
showmessage(e.message);
end;
NO.2
if query.recordcount<0 then
showmessage('无结果');
如果执行行不成功,则给出提示
adailee 2002-04-24
  • 打赏
  • 举报
回复
我不同意楼上兄弟的思路。
你应该知道你的SQL执行是否有结果。——注意,没有结果和结果集为空是不同的。
比如Delete、Update就没有结果。Select只要执行,一定有一个结果。

简单的
Try
Query1.ExecSQL();
except
ShowMessage('Error!');
end;
可以判断大多数执行情况了。
jishiping 2002-04-24
  • 打赏
  • 举报
回复
try
query.execsql;
except
on E: Exception do
ShowException(E, ExceptAddr)
end;
xgto 2002-04-24
  • 打赏
  • 举报
回复
1
你可以在sql server里边,它可以提示你执行成功了没有;
2
你也可以如下:
with query1 do
begin
close;
sql.clear;
sql.add('...');
showmessage(sql.text);//这样就可以查看你的sql 语句,看对不对;
open or execsql;
end;
3:
如果在sql语句中是以select作主语句的话,你应该用open;
只有当用到delete or updata时,你再用execsql;
嗯,小妹就只知道这么一点点;希望能对你有用;
lwk_hlj 2002-04-24
  • 打赏
  • 举报
回复
if query.recordcount=0 返回空数据集
try
query.execsql;
except
showmesssage('出错');
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧