home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / Runimage / Delphi50 / Demos / Db / Csdemos / frmtrans.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-08-11  |  2.0 KB  |  76 lines

  1. unit Frmtrans;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, Windows, Messages, Classes, Graphics, Controls,
  7.   StdCtrls, Forms, DBCtrls, DB, DBGrids, Buttons, DBTables, Grids, ExtCtrls,
  8.   Dialogs, BDE;
  9.  
  10. type
  11.   TFrmTransDemo = class(TForm)
  12.     DBGrid1: TDBGrid;
  13.     DBNavigator: TDBNavigator;
  14.     Panel1: TPanel;
  15.     Panel2: TPanel;
  16.     BitBtn1: TBitBtn;
  17.     BtnUndoEdits: TSpeedButton;
  18.     BtnCommitEdits: TSpeedButton;
  19.     procedure BtnCommitEditsClick(Sender: TObject);
  20.     procedure BtnUndoEditsClick(Sender: TObject);
  21.     procedure FormShow(Sender: TObject);
  22.     procedure FormHide(Sender: TObject);
  23.   private
  24.     { private declarations }
  25.   public
  26.     { public declarations }
  27.   end;
  28.  
  29. var
  30.   FrmTransDemo: TFrmTransDemo;
  31.  
  32. implementation
  33.  
  34. uses DmCSDemo;
  35.  
  36. {$R *.DFM}
  37.  
  38. procedure TFrmTransDemo.FormShow(Sender: TObject);
  39. begin
  40.   DmEmployee.EmployeeDatabase.StartTransaction;
  41.   DmEmployee.EmployeeTable.Open;
  42. end;
  43.  
  44. procedure TFrmTransDemo.FormHide(Sender: TObject);
  45. begin
  46.   DmEmployee.EmployeeDatabase.Commit;
  47. end;
  48.  
  49. procedure TFrmTransDemo.BtnCommitEditsClick(Sender: TObject);
  50. begin
  51.   if DmEmployee.EmployeeDatabase.InTransaction and
  52.      (MessageDlg('Are you sure you want to commit your changes?',
  53.         mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  54.   begin
  55.     DmEmployee.EmployeeDatabase.Commit;
  56.     DmEmployee.EmployeeDatabase.StartTransaction;
  57.     DmEmployee.EmployeeTable.Refresh;
  58.   end else
  59.     MessageDlg('Can''t Commit Changes: No Transaction Active', mtError, [mbOk], 0);
  60. end;
  61.  
  62. procedure TFrmTransDemo.BtnUndoEditsClick(Sender: TObject);
  63. begin
  64.   if DmEmployee.EmployeeDatabase.InTransaction and
  65.     (MessageDlg('Are you sure you want to undo all changes made during the ' +
  66.        'current transaction?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  67.    begin
  68.      DmEmployee.EmployeeDatabase.Rollback;
  69.      DmEmployee.EmployeeDatabase.StartTransaction;
  70.      DmEmployee.EmployeeTable.Refresh;
  71.    end else
  72.      MessageDlg('Can''t Undo Edits: No Transaction Active', mtError, [mbOk], 0);
  73. end;
  74.  
  75. end.
  76.