Delphi DBGrid 记录转移问题!

来源:百度知道 编辑:UC知道 时间:2024/05/24 07:58:25
使用控件ADOQuery1、ADOQuery2、DBGrid1、DBGrid2、DataSource1、DataSource2、button1和button2;
表机构: table1 [iden, name, pwd, remark]; table2同table1
对应:
ADOQuery1 - DataSource1 - DBGrid1 - table1
ADOQuery2 - DataSource2 - DBGrid2 - table2

启动窗体 DBGrid1 显示下面记录
iden name pwd remark
1 th 123 null
2 yh 123 null
3 tg 123 null
...
当选中第3条[3 tg 123 null] 记录时点击button1按钮触发事件

DBGrid1 中的第3条记录清空同时显示在DBGrid2中,显示如下:

iden name pwd remark
3 tg 123 null
...

当点击button2按钮触发事件

将DBGrid2中所有记录逐个updata table1 中对应的iden中
我的意思就是说:将DBGrid1中查询出的记录转移至DBGrid2中,当点击Button2时再将DBGrid2中的记录(如果有多条记录时逐条更新)更新至DBGrid1对应表中的一列值。

最好再用一个query专门做查询以外的操作!

先在private下定义一个私有变量: sid:string;
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(insert into table2(iden,name,pwd,remark) ');
ADOQuery3.SQL.Add(' select iden,name,pwd,remark from table1 where iden='''+sid+'''');
ADOQuery3.execsql;
ADOQuery3.Close;
ADOQuery3.SQL.Clear;
ADOQuery3.SQL.Add(' delete from table1 where iden='''+sid+'''');
ADOQuery3.execsql;
ADOQuery1.close;
ADOQuery1.open;
ADOQuery2.close;
ADOQuery2.open;
end;
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
sid:=ADOQuery1.fieldbyname('iden').asstring;
end;

button2要做的操作我没看懂你的意思!请说清楚一些!

但是你要更新的话,dbgrid1里并没有dbgrid2里的记录了,怎么能更新对应的iden字段?