with query1 do
begin
databasename:='test_data';
sql.add('update tb1');
sql.add('set value='+''''+'000001'+'''');
sql.add('where no='+''''+'000005'+'''');
execsql;
end;
begin
databasename:='test_data';
sql.add('update tb1');
sql.add('set value='+''''+'000001'+'''');
sql.add('where no='+''''+'000005'+'''');
execsql;
end;
解决方案 »
- 如何实现像"金山网镖"哪样快速断开网络与恢复网络?
- 如果在TImage中的图片是Swf格式的,则不能用Image1.Canvas.Ellipse()之类函数画图形了,有什么解决方法吗?
- 我将鼠标移到工具栏上的控件,为什么不能出现hint呢? 我在右键菜单下已经选上show hints了?(在线等)
- 如何发布WebSnap生成的应用程序或网页,并且如何用dreamweaver等网页制作工具来修饰它?送50分
- 哪位大侠帮小弟一把
- 谁有gbhcards.dll请发给我一个[email protected]
- FastReport安装!!!!!!!!!!!!!!!!!!!!
- 用delphi做一个和windows共享会话一样的程序
- delphi能不能作网页上CGI
- ADO中的问题????
- 各位开发MIS都用些什么控件以提高效率?(VB&DELPHI)
- 高分请教,快来呀
应改为
sql.add('where no='+''''+'000005'+'''');
其实这种地方应该用Params来传递参数更合适
sql.add('set tb1.value='+''''+'000001'+'''');
这个语句只能执行一次
或者不能执行;
规范一点应该是:
with query1 do
begin
databasename:='test_data';
close;
sql.clear;
sql.add('update tb1');
sql.add('set value='+''''+'000001'+'''');
sql.add('where no='+''''+'000005'+'''');
execsql;
end;
若有错误提示,应该是参数的原因,看firing_sky的答案。
with query1 do
begin
DataBaseName:='test_data';
close; //关闭打开的查询
sql.Clear; //将其原先语句清空
sql.Add('update tab1 set value=:svalue where no=:snumber'); //
sql.ParamByName('svalue').AsString:='000001';
sql.ParamByName('snumber').AsString:='000005';
ExecSql;
end;