ClientDataSet1和ClientDataSet2同时OPEN不能更新吗

tangfuyou 2020-03-10 05:36:54
奇怪的问题,ClientDataSet1和ClientDataSet2同时OPEN,但是我按BitBtn_SAVE保存时,显示是保存的数据,但是查询后还是原来的数据,那里出问题了?
procedure TForm1.BitBtn_CXClick(Sender: TObject);
begin
//查询
ClientDataSet1.RemoteServer:=DSProviderConnection1;
ClientDataSet2.RemoteServer:=DSProviderConnection1;
try
ClientDataSet1.Close;
ClientDataSet1.CommandText:='SELECT U_id,U_name FROM T_USER';
ClientDataSet1.Open;
DBGridEh1.DataSource:=DataSource1;
DataSource1.DataSet:=ClientDataSet1;


ClientDataSet2.Close;
ClientDataSet2.CommandText:='SELECT U_XH,U_MC FROM T_BJ';
ClientDataSet2.Open;

With ClientDataSet2 do
begin
combobox1.Items.Add(Trim(ClientDataSet2.FieldByname('U_MC').AsString));
ClientDataSet2.Next;
end;

except
on E: Exception do
begin
application.MessageBox('失败 ', '提示', mb_iconinformation + mb_ok);
end;
end;

end;


procedure TForm1.BitBtn_SAVEClick(Sender: TObject);
begin
//保存
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('U_name').AsString:=Edit1.Text;
ClientDataSet1.ApplyUpdates(-1);
application.MessageBox(PChar('保存成功'+CHAR(13)+CHAR(13)), '提示', mb_iconinformation + mb_ok);
end;
...全文
127 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
g58521547 2020-05-30
  • 打赏
  • 举报
回复
ClientDataSet1.FieldByName('U_name').AsString:=Edit1.Text; 这里需要POST一下才能用applyupdate吧。? ClientDataSet1.ApplyUpdates(-1);
tanqth 2020-03-11
  • 打赏
  • 举报
回复
1、原则上你ClientDataSet2只是给combobox1提供数据,使用完应该就关闭; 2、同时打开两个ClientDataSet是可以的,不知道你这里还有其他什么原因。ClientDataSet打开后其实数据是在本地,并且与服务器已断开连接的。
tangfuyou 2020-03-10
  • 打赏
  • 举报
回复
如果注释掉下面的这段就可以保存,这是什么鬼? ClientDataSet2.Close; ClientDataSet2.CommandText:='SELECT U_XH,U_MC FROM T_BJ'; ClientDataSet2.Open; With ClientDataSet2 do begin combobox1.Items.Add(Trim(ClientDataSet2.FieldByname('U_MC').AsString)); ClientDataSet2.Next; end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧