変更、削除、データを追加し、デルタ・プロパティClientDataSetの

データの変更を提出ポスト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]); 
エンド ;

 

おすすめ

転載: www.cnblogs.com/jijm123/p/11468402.html