home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 May / CMCD0505.ISO / Software / Shareware / Programare / pgedri / Source / Demos / PGEDemo / CLX / Main.pas next >
Encoding:
Pascal/Delphi Source File  |  2005-04-01  |  4.7 KB  |  167 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, DBLocal, DB,
  18.   QGraphics, QControls, QForms, QDialogs, QStdCtrls, QButtons, QExtCtrls, QComCtrls,
  19.   QGrids, QDBGrids, QDBCtrls;
  20.   
  21. type
  22.   TfrmDemo = class(TForm)
  23.     dsDemo: TDataSource;
  24.     Grid: TDBGrid;
  25.     btnConnect: TButton;
  26.     btnApplyUpdates: TButton;
  27.     SQLMonitor: TSQLMonitor;
  28.     Memo1: TMemo;
  29.     Label1: TLabel;
  30.     btnRun: TButton;
  31.     StatusBar: TStatusBar;
  32.     connDemo: TSQLConnection;
  33.     Panel2: TPanel;
  34.     Label3: TLabel;
  35.     cdsDemo: TClientDataSet;
  36.     sdsDemo: TSQLDataSet;
  37.     dpDemo: TDataSetProvider;
  38.     btnCancelUpdates: TButton;
  39.     DBNavigator1: TDBNavigator;
  40.     Panel1: TPanel;
  41.     Label2: TLabel;
  42.     SQLLog: TMemo;
  43.     Label4: TLabel;
  44.     procedure btnRunClick(Sender: TObject);
  45.     procedure connDemoAfterConnect(Sender: TObject);
  46.     procedure connDemoAfterDisconnect(Sender: TObject);
  47.     procedure btnConnectClick(Sender: TObject);
  48.     procedure btnApplyUpdatesClick(Sender: TObject);
  49.     procedure FormCreate(Sender: TObject);
  50.     procedure connDemoLogin(Database: TSQLConnection;
  51.       LoginParams: TStrings);
  52.     procedure btnCancelUpdatesClick(Sender: TObject);
  53.     procedure SQLMonitorLogTrace(Sender: TObject; CBInfo: pSQLTRACEDesc);
  54.     procedure cdsDemoReconcileError(DataSet: TCustomClientDataSet;
  55.       E: EReconcileError; UpdateKind: TUpdateKind;
  56.       var Action: TReconcileAction);
  57.     procedure dsDemoUpdateData(Sender: TObject);
  58.   private
  59.     { Private declarations }
  60.   public
  61.     { Public declarations }
  62.   end;
  63.  
  64. var
  65.   frmDemo: TfrmDemo;
  66.  
  67. implementation
  68.  
  69. uses
  70.   Reconcile;
  71. {$R *.xfm}
  72.  
  73. procedure TfrmDemo.btnRunClick(Sender: TObject);
  74. begin
  75.   connDemo.LoadParamsFromIniFile;
  76.   with sdsDemo do
  77.   begin
  78.     CommandText := Memo1.Lines.Text;
  79.     CommandType := ctQuery;
  80.   end;
  81.   with cdsDemo do
  82.   begin
  83.     Close;
  84.     Open;
  85.     Edit;
  86.   end;
  87.   StatusBar.Panels[0].Text := 'Query sucessfully executed.'
  88. end;
  89.  
  90. procedure TfrmDemo.connDemoAfterConnect(Sender: TObject);
  91. begin
  92.   btnConnect.Caption := 'Disconnect';
  93. end;
  94.  
  95. procedure TfrmDemo.connDemoAfterDisconnect(Sender: TObject);
  96. begin
  97.   if btnConnect <> nil then
  98.     btnConnect.Caption := 'Connect';
  99. end;
  100.  
  101. procedure TfrmDemo.btnConnectClick(Sender: TObject);
  102. begin
  103.   with connDemo do
  104.   begin
  105.     Connected := not Connected;
  106.     if Connected then
  107.       StatusBar.Panels[0].Text := 'Connected to the database.'
  108.     else
  109.     begin
  110.       cdsDemo.Close;
  111.       StatusBar.Panels[0].Text := 'Disconnected from the database.';
  112.     end;
  113.   end;
  114. end;
  115.  
  116. procedure TfrmDemo.btnApplyUpdatesClick(Sender: TObject);
  117. var
  118.   Errors: Integer;
  119. begin
  120.   Errors := cdsDemo.ApplyUpdates(-1);
  121.   if Errors > 0 then
  122.     ShowMessage(Format('There were %d errors updating the dataset.', [Errors]));
  123.   dsDemoUpdateData(Sender)
  124. end;
  125.  
  126. procedure TfrmDemo.FormCreate(Sender: TObject);
  127. begin
  128.   SQLMonitor.Active := True;
  129.   StatusBar.Panels[0].Text := 'Program is ready.';
  130. end;
  131.  
  132. procedure TfrmDemo.connDemoLogin(Database: TSQLConnection;
  133.   LoginParams: TStrings);
  134. begin
  135.   //
  136. end;
  137.  
  138. procedure TfrmDemo.btnCancelUpdatesClick(Sender: TObject);
  139. begin
  140.   cdsDemo.CancelUpdates;
  141.   dsDemoUpdateData(Sender)
  142. end;
  143.  
  144. procedure TfrmDemo.SQLMonitorLogTrace(Sender: TObject;
  145.   CBInfo: pSQLTRACEDesc);
  146. begin
  147.   if CBINfo.eTraceCat = TRACEcat(traceQEXECUTE) then
  148.     SQLLog.Lines.Add('>> ' + AnsiString(CBInfo.pszTrace))
  149.   else
  150.     SQLLog.Lines.Add(AdjustLineBreaks(AnsiString(CBInfo.pszTrace)));
  151. end;
  152.  
  153. procedure TfrmDemo.cdsDemoReconcileError(DataSet: TCustomClientDataSet;
  154.   E: EReconcileError; UpdateKind: TUpdateKind;
  155.   var Action: TReconcileAction);
  156. begin
  157.   Action := HandleReconcileError(DataSet, UpdateKind, E);
  158. end;
  159.  
  160. procedure TfrmDemo.dsDemoUpdateData(Sender: TObject);
  161. begin
  162.   btnApplyUpdates.Enabled := cdsDemo.ChangeCount > 0;
  163.   btnCancelUpdates.Enabled := btnApplyUpdates.Enabled
  164. end;
  165.  
  166. end.
  167.