如何才能更改数据库的当前记录呢?
解决方案 »
- 关于 ClientDataset 有列有重复
- 不懂这个意思
- 关于StringGrid的使用
- 请S.F.(chinasf.cnblogs.com) ( ) 信誉:110 进来领分~~~~~~~~~~~~~~~~~~~~~~
- 为什么我在SQL Expolor中运行正常的语名到DELPHI程序中就不行了?
- ehlib3.2 和ehlib v3.4 用delphi6.0都装不上这个控件,不知为何,如何装才行
- 请问,ShellExecute在哪个dll里面?
- 一个让我不知道怎么描述的多线程问题
- 大富翁教育网的网址是什么?
- 大家好,请教如何让我的程序窗口始终在所有窗口最下面.........................???
- VCLSkin控件安装问题
- 请问如何可以在TEdit控件中输入多行文本?
修改内容
DataSet.Post;
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('update DG set visible=false');//visible是表里的字段名
sql.Add('where ITEM=:ss');
parameters.ParamByName('ss').Value:=fieldbyname('ITEM').AsString;//ITEM也是表里的字段名
execsql;
end;
按理说应该更新了
可是提示 fiele 'ITEM' not found
sql.Add('update DG set visible=false ');//visible是表里的字段名
sql.Add(' where ITEM=:ss'); 这样试试,真不中就不知为什么了
用另外的Query更新就不存在这个问题了
begin
close;
sql.Clear;
sql.Add('update DG set visible=false');
sql.Add('where ITEM="3"');
execsql;
end;
但是这样就没有事.
但你这样写
parameters.ParamByName('ss').Value:=fieldbyname('ITEM').AsString;//ITEM也是表里的fieldbyname('ITEM').AsString;是取的AdoQuery1的,前面已经Close了
所以找不到的用另外的AdoQuery处理即可。
begin
close;
sql.Clear;
sql.Add('update DG set visible=false');//visible是表里的字段名
sql.Add('where ITEM=:ss');
parameters.ParamByName('ss').Value:=fieldbyname('ITEM').AsString;//ITEM也是表里的字段名
execsql;
end;
是不是改成 sql.Add('where ITEM=ss');???
tmp: string;
begin
...
tmp := fieldbyname('ITEM').AsString;
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('update DG set visible=false');//visible是表里的字段名
sql.Add('where ITEM=:ss');
parameters.ParamByName('ss').Value:=tmp;
execsql;
end;
...
end;