データの変更を提出ポストClientDataSetのに使用される場合には、実際には、それは、バックエンド・データベースに更新されていないが、DataSnapのことで、データバッファの管理に提出します。場合ClientDataSet.ApplyUpDates(MAXERRORS:整数)の方法は、データベース内で更新されます。のみ変更されたデータを更新するApplyUpdatesメソッドは、ClientDataSet.Delta上のデータを属性。デルタ同時にデータベースへのデータの呼び出しAppplyUpDates更新が最後のボックスに注意を払う、クリアされます。以下のデータは、変更、または削除操作、およびデルタのデータを表示することができます。
レンダリング:
************************************************** ************************************
実行します。
************************************************** ************************************
接続DBGrid1:
DBGrid1.DataSource-> DataSource1.DataSet-> ClientDataSet1.ProviderName-> DataSetProvider1.DataSet->
SQLDataset1.SQLConnection-> SQLConnection1特定のデータベース(OracleのここでEMPテーブルに接続されています)。
SQLDataSet1.CommandText:EMP FROM = SELECT *; ClientDataSet1.Active:=はtrue。
DBNavigator1.DataSource-> DataSource1;
接続DBGrid2:
DBGrid2.DataSource-> DataSource2.DataSet-> ClientDataSet2。
コントロールの使用は、コントロールを接続し、上記の設定に応じて、空のプロジェクトよりに置きます。
************************************************** ************************************
関連CODE:
************************************************** ************************************
手順TForm3.Button1Click(送信者:TObjectを); 始める // 削除し、AfterPostイベントをトリガしないデータを追加し、手動割り当て // データデルタClientDataSet1 DataプロパティでClientDataSet2に、DBGrid2表示処理データましょう ClientDataSet2.Dataを:= ClientDataSet1.Delta; StatusBar1.Panels [ 0 ]の.text:FORMAT =(' デルタデータカウントを:%のD ' 、 [ClientDataSet2.RecordCount]); エンド; 手順TForm3.Button2Click(送信者:TObjectを); 始める // データベースのデータへの変更をコミットし、0は、エラーが発生しないことを示し ClientDataSet1.ApplyUpdates(0 ); ClientDataSet2.Data: = ClientDataSet1.Delta。 エンド; 手順TForm3.ClientDataSet1AfterPost(データセット:TDataSetの上); 始める // 、データ属性にClientDataSet2にデータデルタClientDataSet1をDBGrid2表示処理データので ClientDataSet2.Data:= ClientDataSet1.Delta; StatusBar1.Panels [ 0 ]の.text:FORMAT =(' デルタデータカウントを:%のD ' 、 [ClientDataSet2.RecordCount]); エンド ;