home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 May / CMCD0505.ISO / Software / Shareware / Programare / pgedri / Source / Demos / PGEDemo / VCL / Main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2005-04-01  |  4.7 KB  |  172 lines

  1. {*******************************************************************}
  2. {                                                                   }
  3. {       Vita Voom Software                                          }
  4. {       Main.pas unit - PGEDemo Demo                                }
  5. {                                                                   }
  6. {       Copyright (c) 1998-2003 Vita Voom Software                  }
  7. {       ALL RIGHTS RESERVED                                         }
  8. {*******************************************************************}
  9. {                                                                   }
  10. { Please refer to the Readme.txt file for details.                  }
  11. {                                                                   }
  12. unit Main;
  13.  
  14. interface
  15.  
  16. uses
  17.   SysUtils, Classes, DBXpress, Provider, SqlExpr, FMTBcd, DBClient, DB,
  18.   {$IF Defined(VER140) or Defined(VER150)}
  19.     DBLocal,
  20.   {$IFEND}
  21.   Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls,
  22.   Grids, DBGrids, DBCtrls;
  23.  
  24. type
  25.   TfrmDemo = class(TForm)
  26.     dsDemo: TDataSource;
  27.     Grid: TDBGrid;
  28.     btnConnect: TButton;
  29.     btnApplyUpdates: TButton;
  30.     SQLMonitor: TSQLMonitor;
  31.     Memo1: TMemo;
  32.     Label1: TLabel;
  33.     btnRun: TButton;
  34.     StatusBar: TStatusBar;
  35.     connDemo: TSQLConnection;
  36.     Panel2: TPanel;
  37.     Label3: TLabel;
  38.     cdsDemo: TClientDataSet;
  39.     sdsDemo: TSQLDataSet;
  40.     dpDemo: TDataSetProvider;
  41.     btnCancelUpdates: TButton;
  42.     DBNavigator1: TDBNavigator;
  43.     Panel1: TPanel;
  44.     Label2: TLabel;
  45.     SQLLog: TMemo;
  46.     Label4: TLabel;
  47.     procedure btnRunClick(Sender: TObject);
  48.     procedure connDemoAfterConnect(Sender: TObject);
  49.     procedure connDemoAfterDisconnect(Sender: TObject);
  50.     procedure btnConnectClick(Sender: TObject);
  51.     procedure btnApplyUpdatesClick(Sender: TObject);
  52.     procedure FormCreate(Sender: TObject);
  53.     procedure connDemoLogin(Database: TSQLConnection;
  54.       LoginParams: TStrings);
  55.     procedure btnCancelUpdatesClick(Sender: TObject);
  56.     procedure SQLMonitorLogTrace(Sender: TObject; CBInfo: pSQLTRACEDesc);
  57.     procedure cdsDemoReconcileError(DataSet: TCustomClientDataSet;
  58.       E: EReconcileError; UpdateKind: TUpdateKind;
  59.       var Action: TReconcileAction);
  60.     procedure dsDemoUpdateData(Sender: TObject);
  61.   private
  62.     { Private declarations }
  63.   public
  64.     { Public declarations }
  65.   end;
  66.  
  67. var
  68.   frmDemo: TfrmDemo;
  69.  
  70. implementation
  71.  
  72. uses
  73.   Reconcile;
  74.  
  75. {$R *.dfm}
  76.  
  77. procedure TfrmDemo.btnRunClick(Sender: TObject);
  78. begin
  79.   connDemo.LoadParamsFromIniFile;
  80.   with sdsDemo do
  81.   begin
  82.     CommandText := Memo1.Lines.Text;
  83.     CommandType := ctQuery;
  84.   end;
  85.   with cdsDemo do
  86.   begin
  87.     Close;
  88.     Open;
  89.     Edit;
  90.   end;
  91.   StatusBar.Panels[0].Text := 'Query sucessfully executed.';
  92.   Self.FocusControl(Grid);
  93. end;
  94.  
  95. procedure TfrmDemo.connDemoAfterConnect(Sender: TObject);
  96. begin
  97.   btnConnect.Caption := 'Disconnect';
  98. end;
  99.  
  100. procedure TfrmDemo.connDemoAfterDisconnect(Sender: TObject);
  101. begin
  102.   if btnConnect <> nil then
  103.     btnConnect.Caption := 'Connect';
  104. end;
  105.  
  106. procedure TfrmDemo.btnConnectClick(Sender: TObject);
  107. begin
  108.   with connDemo do
  109.   begin
  110.     Connected := not Connected;
  111.     if Connected then
  112.       StatusBar.Panels[0].Text := 'Connected to the database.'
  113.     else
  114.     begin
  115.       cdsDemo.Close;
  116.       StatusBar.Panels[0].Text := 'Disconnected from the database.';
  117.     end;
  118.   end;
  119. end;
  120.  
  121. procedure TfrmDemo.btnApplyUpdatesClick(Sender: TObject);
  122. var
  123.   Errors: Integer;
  124. begin
  125.   Errors := cdsDemo.ApplyUpdates(-1);
  126.   if Errors > 0 then
  127.     ShowMessage(Format('There were %d errors updating the dataset.', [Errors]));
  128.   dsDemoUpdateData(Sender)
  129. end;
  130.  
  131. procedure TfrmDemo.FormCreate(Sender: TObject);
  132. begin
  133.   SQLMonitor.Active := True;
  134.   StatusBar.Panels[0].Text := 'Program is ready.';
  135. end;
  136.  
  137. procedure TfrmDemo.connDemoLogin(Database: TSQLConnection;
  138.   LoginParams: TStrings);
  139. begin
  140.   //
  141. end;
  142.  
  143. procedure TfrmDemo.btnCancelUpdatesClick(Sender: TObject);
  144. begin
  145.   cdsDemo.CancelUpdates;
  146.   dsDemoUpdateData(Sender)
  147. end;
  148.  
  149. procedure TfrmDemo.SQLMonitorLogTrace(Sender: TObject;
  150.   CBInfo: pSQLTRACEDesc);
  151. begin
  152.   if CBINfo.eTraceCat = TRACEcat(traceQEXECUTE) then
  153.     SQLLog.Lines.Add('>> ' + AnsiString(CBInfo.pszTrace))
  154.   else
  155.     SQLLog.Lines.Add(AdjustLineBreaks(AnsiString(CBInfo.pszTrace)));
  156. end;
  157.  
  158. procedure TfrmDemo.cdsDemoReconcileError(DataSet: TCustomClientDataSet;
  159.   E: EReconcileError; UpdateKind: TUpdateKind;
  160.   var Action: TReconcileAction);
  161. begin
  162.   Action := HandleReconcileError(DataSet, UpdateKind, E);
  163. end;
  164.  
  165. procedure TfrmDemo.dsDemoUpdateData(Sender: TObject);
  166. begin
  167.   btnApplyUpdates.Enabled := cdsDemo.ChangeCount > 0;
  168.   btnCancelUpdates.Enabled := btnApplyUpdates.Enabled
  169. end;
  170.  
  171. end.
  172.