home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / Runimage / Delphi50 / Demos / Midas / Mstrdtl / clntdm.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-08-11  |  1.9 KB  |  75 lines

  1. unit ClntDM;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Db, DBTables, DBClient, MConnect;
  8.  
  9. type
  10.   TDM = class(TDataModule)
  11.     ProjectSource: TDataSource;
  12.     EmpProjSource: TDataSource;
  13.     EmployeeSource: TDataSource;
  14.     Project: TClientDataSet;
  15.     Emp_Proj: TClientDataSet;
  16.     Employee: TClientDataSet;
  17.     Emp_ProjEMP_NO: TSmallintField;
  18.     Emp_ProjPROJ_ID: TStringField;
  19.     Emp_ProjEmployeeName: TStringField;
  20.     ProjectPROJ_ID: TStringField;
  21.     ProjectPROJ_NAME: TStringField;
  22.     ProjectPROJ_DESC: TMemoField;
  23.     ProjectTEAM_LEADER: TSmallintField;
  24.     ProjectPRODUCT: TStringField;
  25.     ProjectEmpProj: TDataSetField;
  26.     DCOMConnection: TDCOMConnection;
  27.     procedure ProjectNewRecord(DataSet: TDataSet);
  28.     procedure ReconcileError(DataSet: TClientDataSet;
  29.       E: EReconcileError; UpdateKind: TUpdateKind;
  30.       var Action: TReconcileAction);
  31.   public
  32.     procedure ApplyUpdates;
  33.   end;
  34.  
  35. var
  36.   DM: TDM;
  37.  
  38. implementation
  39.  
  40. uses RecError;
  41.  
  42. {$R *.DFM}
  43.  
  44. procedure TDM.ApplyUpdates;
  45. begin
  46.   if Project.ApplyUpdates(0) = 0 then
  47.     Project.Refresh;
  48. end;
  49.  
  50. procedure TDM.ProjectNewRecord(DataSet: TDataSet);
  51. var
  52.   Value: String;
  53. begin
  54.   if InputQuery('Project ID','Enter Project ID:',Value) then
  55.   begin
  56.     if Length(Value) > ProjectPROJ_ID.Size then
  57.       raise Exception.CreateFmt('Project ID can only be %d characters',
  58.         [ProjectPROJ_ID.Size]);
  59.     if Length(Value) = 0 then
  60.       raise Exception.Create('Project ID is required');
  61.   end else
  62.     SysUtils.Abort;
  63.   ProjectPROJ_ID.Value := Value;
  64. end;
  65.  
  66. { Look at recerror.pas for information on the HandleError dialog. }
  67. procedure TDM.ReconcileError(DataSet: TClientDataSet;
  68.   E: EReconcileError; UpdateKind: TUpdateKind;
  69.   var Action: TReconcileAction);
  70. begin
  71.   Action := HandleReconcileError(DataSet, UpdateKind, E);
  72. end;
  73.  
  74. end.
  75.