home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Database / ejemplos / TPRovider / Unit1.~pa < prev    next >
Encoding:
Text File  |  1999-03-03  |  2.1 KB  |  99 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.     end;
  51.     if ClientDataset2.State in [dsEdit, dsInsert] then
  52.       ClientDataset2.Post;
  53.     if Clientdataset2.ChangeCount > 0 then
  54.     begin
  55.       Clientdataset2.ApplyUpdates(-1);
  56.       ClientDataset2.Refresh;
  57.     end;
  58.   end;
  59.  
  60. end;
  61.  
  62. procedure TForm1.Rollback1Click(Sender: TObject);
  63. begin
  64.   datamodule2.ClientDataset1.CancelUpdates;
  65.   datamodule2.Clientdataset2.CancelUpdates;
  66. end;
  67.  
  68. procedure TForm1.Delta1Click(Sender: TObject);
  69. begin
  70.   //con la propiedad delta podemos ver los datos modificados
  71.   // con su valor antiguo y nuevo
  72.  
  73.   Application.CreateForm(TForm3, Form3);
  74.   try
  75.     with Datamodule2 do
  76.     begin
  77.       if Clientdataset1.ChangeCount > 0 then
  78.       begin
  79.         Clientdataset3.Close;
  80.         Clientdataset3.Data := Clientdataset1.Delta;
  81.         Clientdataset3.Open;
  82.       end;
  83.       if Clientdataset2.ChangeCount >0 then
  84.       begin
  85.         Clientdataset4.Close;
  86.         Clientdataset4.Data := Clientdataset2.Delta;
  87.         Clientdataset4.Open;
  88.       end;
  89.     end;
  90.     Form3.ShowModal;
  91.   finally
  92.     Form3.Free;
  93.   end;
  94. end;
  95.  
  96. end.
  97.  
  98. end.
  99.