我的代码如下
with adoquery1 do
sql.add('update 信息表 set 姓名='''+edit1.text+''',学号='''+edit2.text+''',.....');
sql.add('where 1=1');
execsql;还有就是我想修改鼠标点击的那一行,需要加些代码吗?
with adoquery1 do
sql.add('update 信息表 set 姓名='''+edit1.text+''',学号='''+edit2.text+''',.....');
sql.add('where 1=1');
execsql;还有就是我想修改鼠标点击的那一行,需要加些代码吗?
解决方案 »
- 求教一个调用DLL的速度问题,很诡异-_-
- 向用过indy控件的朋友求救!!!!!
- (新手求教)请问怎样插入一值到相应字段下(Delphi )
- 我的中间层用的是TQuery,客户层用的是ClientDataSet ,我想把客户端的datagrid中显示的数据批量保存在本地db数据里。
- Dataset赋空串的问题??
- 做XP风格的窗体中碰见的问题。MDI主窗体的非客户区去不掉?
- 动态生成按扭问题
- 软件保护工具--->TTProtect Demo 1.02 更新 (7.14)
- DBGrid增加的问题?
- 我帮一个单位做了一个小型设备管理平台。却始终不能做成安装文件。
- 有关sql脚本的问题
- 小问题,在线等!马上给分!
比如
ID := adoquery1.FieldByName('id').asinteger;
然后你UPDATE的时候WHERE加ID= ??
就可以了。
with adoquery1 do
begin
sql.add('update 信息表 set 姓名='+quotedstr(edit1.text)+',学号='+quotedstr(edit2.text)+',..... where 1=1');
execsql;
end;
2
with adoquery1 do
begin
edit;
fieldbyname('姓名').asstring:=edit1.text;
fieldbyname('学号').asstring:=edit2.text;
fieldbyname('年龄').asinteger:=strtoint(edit3.text);
post;
end;
with adoquery1 do
begin
edit;
FieldByName('column').asstring:= 'asdga';
post;
end;
OK
如果一定要用sql就要用FIELDBYNAME方法取到主键的值,在UPDATE语句里面加上where查询主键进行修改也可以
我想获取鼠标选中的那一行,然后修改它,有没办法呢?
var id:integer;
...
id:=adodataset1.fieldbyname('id').value;
...
然后在修改这个记录
...
with adoquery1 do
begin
sql.add('update 信息表 set 姓名='+quotedstr(edit1.text)+',学号='+quotedstr(edit2.text)+',..... where id='+inttostr(id));
execsql;
end;
...
明白了么
adotable1.fieldbyname('姓名').value:=edit1.text;总是显示第一行数据呢?按照neo40(企鹅)老兄给的代码会出现“参数001没有默认值”的错误,而这个001就是第一行‘NO’字段的数据,怎么会这样呢?
edit1.text:=adotable1.fieldbyname('姓名').asString;
procedure TForm1.ADOquery1AfterScroll(DataSet: TDataSet);
begin
edit1.Text:=adoquery2.fieldbyname('id').asstring;
end;
用一个adoquery2来获得所要的标识的值
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.add('update table set name=.... where id='''+edit1.Text+'''');
ExecSQL;
end;
adoquery1.close;
adoquery1.Open;
end;
set...where aaa='''+adoquery1.fieldbyname('aaa')+'''