sql中有参数,是这么用吗?请指点.

huliao 2001-12-12 02:36:20
var qryTemp: TQuery;
myDate: TDateTime;
...
qryTemp:=TQuery.Create(nil);
with qryTemp do begin
DatabaseName:='MyDatabase';
SQL.Clear;
SQL.Add('delete from mytable where wfdate<:Date');
Params[0].Name:='Date';
Params[0].AsDate:=myDate;
try ExecSQL;
finally ShowMessage('执行SQL语句出错!');
end;
end;
qryTemp.Free;
...

我用debug watch看,qryTemp.SQL.Text和qryTemp.Params[0].AsDate都没问题,
执行却有错误.请指点.用的Paradox,以后用SQLServer.
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
txinfo 2001-12-13
  • 打赏
  • 举报
回复
to huliao():
老大,
try
..
finally
..
end
的意思是不论你是否异常,都要执行finally里面的内容
如果是异常才要执行,把finally改为except
try
..
except
showmessage('出错');
end;
huliao 2001-12-12
  • 打赏
  • 举报
回复
少了from是错误的,不信你在delphi中的SQL Explorer中试试。只是我的上一段程序的确有问题,总是运行到finally里,请指点。
txinfo 2001-12-12
  • 打赏
  • 举报
回复
'delete mytable where wfdate<:Date'这句话少了个from
抱朴守拙 2001-12-12
  • 打赏
  • 举报
回复
with qryTemp do
begin
DatabaseName := 'MyDatabase';
Close;
SQL.Clear;
SQL.Add('delete mytable where wfdate<:Date');
Params[0].AsDate := myDate;
try
ExecSQL;
except
ShowMessage('执行SQL语句出错!');
end;
end;
应该没有错啊.
guasha 2001-12-12
  • 打赏
  • 举报
回复
直接把条件拼道串里把
huliao 2001-12-12
  • 打赏
  • 举报
回复
老兄,不对.
taxi 2001-12-12
  • 打赏
  • 举报
回复
with qryTemp do
begin
DatabaseName := 'MyDatabase';
SQL.Clear;
SQL.Add('delete mytable where wfdate<:Date');
Params[0].AsDate := myDate;
try
ExecSQL;
except
ShowMessage('执行SQL语句出错!');
end;
end;

5,388

社区成员

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

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