比如用户表 user
id name city_id
1 张三 01
2 李四 02
城市表 city
id name
01 北京
02 上海
我在DBGridEh1+DBLookupComboboxEh1显示
Select a.*,b.name as CityName from [user] a left join city b on a.city_id
=b.id
DBGridEh1 显示3列
id name CityName
1 张三 北京
2 李四 上海当我在DBGridEh下拉框,把李四的城市名改成北京 ,然后ADOQuery1.UpdateBatch();
城市表竟然也更新了 02 变成北京...我只想更新表user 不想更新表city这要怎么解决呢?
id name city_id
1 张三 01
2 李四 02
城市表 city
id name
01 北京
02 上海
我在DBGridEh1+DBLookupComboboxEh1显示
Select a.*,b.name as CityName from [user] a left join city b on a.city_id
=b.id
DBGridEh1 显示3列
id name CityName
1 张三 北京
2 李四 上海当我在DBGridEh下拉框,把李四的城市名改成北京 ,然后ADOQuery1.UpdateBatch();
城市表竟然也更新了 02 变成北京...我只想更新表user 不想更新表city这要怎么解决呢?
应该是改city_id把02变01,重新open也可以指定更新的表
ADOQuery1.Properties['Unique Table'].Value:='表名';
ADOQuery1.UpdateBatch();--另外:联接的查询,不建议做更新的动作
我只要改city_id 就可以了 不想改city,
显示CityName是为了给用户显示直观点而已 我这样操作,表city还是被更新了
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.Properties['Unique Table'].Value:='user';
ADOQuery1.UpdateBatch();
end;
更新dbgrid的话
100行 修改了5行的话 得一个个循环保存啊
中间加ClientDataSet 会不会变慢呢?