home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Database / ejemplos / TPRovider / Unit1.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-03-30  |  2.3 KB  |  103 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   ExtCtrls, DBCtrls, Grids, DBGrids, Menus,StdCtrls,db;
  8.  
  9.  
  10. type
  11.   TForm1 = class(TForm)
  12.     MainMenu1: TMainMenu;
  13.     Ver1: TMenuItem;
  14.     Delta1: TMenuItem;
  15.     DBGrid1: TDBGrid;
  16.     DBGrid2: TDBGrid;
  17.     DBNavigator1: TDBNavigator;
  18.     DBNavigator2: TDBNavigator;
  19.     Modificaciones1: TMenuItem;
  20.     Commit1: TMenuItem;
  21.     Rollback1: TMenuItem;
  22.     procedure Commit1Click(Sender: TObject);
  23.     procedure Rollback1Click(Sender: TObject);
  24.     procedure Delta1Click(Sender: TObject);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.   end;
  30.  
  31. var
  32.   Form1: TForm1;
  33.  
  34. implementation
  35.  
  36. uses Unit2, Unit3;
  37.  
  38. {$R *.DFM}
  39.  
  40. procedure TForm1.Commit1Click(Sender: TObject);
  41. begin
  42.   with Datamodule2 do
  43.   begin
  44.     if Clientdataset1.State in [dsEdit, dsInsert] then
  45.       Clientdataset1.Post;
  46.     if Clientdataset1.ChangeCount > 0 then
  47.     begin
  48.       Clientdataset1.ApplyUpdates(-1);
  49.       Clientdataset1.Refresh;
  50.       clientdataset1.LogChanges:=true;
  51.       Clientdataset1.MergeChangeLog;
  52.     end;
  53.     if ClientDataset2.State in [dsEdit, dsInsert] then
  54.       ClientDataset2.Post;
  55.     if Clientdataset2.ChangeCount > 0 then
  56.     begin
  57.       Clientdataset2.ApplyUpdates(-1);
  58.       ClientDataset2.Refresh;
  59.       clientdataset2.LogChanges:=true;
  60.       clientdataset2.mergechangelog;
  61.     end;
  62.  
  63.   end;
  64.  
  65. end;
  66.  
  67. procedure TForm1.Rollback1Click(Sender: TObject);
  68. begin
  69.   datamodule2.ClientDataset1.CancelUpdates;
  70.   datamodule2.Clientdataset2.CancelUpdates;
  71. end;
  72.  
  73. procedure TForm1.Delta1Click(Sender: TObject);
  74. begin
  75.   //con la propiedad delta podemos ver los datos modificados
  76.   // con su valor antiguo y nuevo
  77.   Application.CreateForm(TForm3, Form3);
  78.   try
  79.     with Datamodule2 do
  80.     begin
  81.       if Clientdataset1.ChangeCount > 0 then
  82.       begin
  83.         Clientdataset3.Close;
  84.         Clientdataset3.Data := Clientdataset1.Delta;
  85.         Clientdataset3.Open;
  86.       end;
  87.       if Clientdataset2.ChangeCount >0 then
  88.       begin
  89.         Clientdataset4.Close;
  90.         Clientdataset4.Data := Clientdataset2.Delta;
  91.         Clientdataset4.Open;
  92.       end;
  93.     end;
  94.     Form3.ShowModal;
  95.   finally
  96.     Form3.Free;
  97.   end;
  98. end;
  99.  
  100. end.
  101.  
  102. end.
  103.