我想在单层应用中通过ClientDataSet组件进行缓存更新操作,也就是
在表中插入好几条记录后点“提交”可以保存,点“取消”可以统一取消。
不过在ClientDataSet组件引发异常:procedure TForm1.Button1Click(Sender: TObject);
begin
with ClientDataSet1 do
begin
Insert;
FieldByName('Name').AsString:= Edit1.Text;
FieldByName('Weight').AsInteger:= StrToInt(Edit2.Text);
ApplyUpdates(-1); //Error here!!!
end;
end;//Button1单击引发错误:
//EDatabaseError with message 'ClientDataSet1: Missing data provider or data packet'.procedure TForm1.Button2Click(Sender: TObject);
begin
with ClientDataSet1 do
begin
Edit;
Post; //点这个按钮统一把所有ApplyUpdates的数据写入数据库。
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
ClientDataSet1.Cancel;
end;
在表中插入好几条记录后点“提交”可以保存,点“取消”可以统一取消。
不过在ClientDataSet组件引发异常:procedure TForm1.Button1Click(Sender: TObject);
begin
with ClientDataSet1 do
begin
Insert;
FieldByName('Name').AsString:= Edit1.Text;
FieldByName('Weight').AsInteger:= StrToInt(Edit2.Text);
ApplyUpdates(-1); //Error here!!!
end;
end;//Button1单击引发错误:
//EDatabaseError with message 'ClientDataSet1: Missing data provider or data packet'.procedure TForm1.Button2Click(Sender: TObject);
begin
with ClientDataSet1 do
begin
Edit;
Post; //点这个按钮统一把所有ApplyUpdates的数据写入数据库。
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
ClientDataSet1.Cancel;
end;
Insert,Edit,Delete后要Post;
最后寫入數据庫時用ApplyUpdates(0);
1。TDataSetProvider连接
2。自己客户端 ClientDataSet 。create。
因为无论BDE还是ADO最起码都4M以上大,所以我的程序中我根本不想用任何数据库引擎,所以才遇到这个问题。大家快救命啊!!!!!!!!!
BaseLine:Integer;
begin
with ClientDataSet1 do
begin
BaseLine:=SavePoint;
Insert;
FieldByName('Name').AsString:= Edit1.Text;
FieldByName('Weight').AsInteger:= StrToInt(Edit2.Text);
if 提交 then
MergeChangeLog
else //取消
SavePoint:=BaseLine;
end;
end;
在applyupdate
有方法让“当改动发生时”(Insert、Edit、Delete操作)SavePoint一下吗?