⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datamoduleunit.pas

📁 Delphi 应用举例
💻 PAS
字号:
unit DatamoduleUnit;

interface

uses
  {$IFDEF Linux}QForms, {$ELSE}Forms, {$ENDIF}
  SysUtils, Classes, DB, DBTables, DBClient, Provider;

type
  TDataModule1 = class(TDataModule)
    Qry_search: TQuery;
    Qry_tmp: TQuery;
    Qry_inf: TQuery;
    DataSetProvider1: TDataSetProvider;
    ClientDataSet_edit: TClientDataSet;
    DataSourceSearch: TDataSource;
    Qry_searchUserID: TStringField;
    Qry_searchFYear: TFloatField;
    Qry_searchFMonth: TFloatField;
    Qry_searchFDay: TFloatField;
    Qry_searchCaption: TStringField;
    Qry_searchFMessage: TMemoField;
    TableUser: TTable;
    DataSourceuser: TDataSource;
    DataSource_edit: TDataSource;
    TableUserUserID: TStringField;
    TableUserPWD: TStringField;
    TableUserActor: TFloatField;
    TableUserMail: TStringField;
    Qry_searchrowID: TIntegerField;
    procedure ClientDataSet_editAfterInsert(DataSet: TDataSet);
    procedure ClientDataSet_editAfterPost(DataSet: TDataSet);
    procedure Qry_searchCalcFields(DataSet: TDataSet);
  private
  public
  end;

// Procs
  function DataModule1: TDataModule1;

implementation
{$R *.dfm}

uses
  IWInit,
  ServerController;

// Since we are threaded we cannot use global variables to store form / datamodule references
// so we store them in WebApplication.Data and we could reference that each time, but by creating
// a function like this our other code looks "normal" almost as if its referencing a global.
// This function is not necessary but it makes the code in the main form which references this
// datamodule a lot neater.
// Without this function ever time we would reference this datamodule we would use:
//   TDataModule1(WebApplication.Data).Datamodule.<method / component>
// By creating this procedure it becomes:
//   TDataModule1.<method / component>
// Which is just like normal Delphi code.
function DataModule1: TDataModule1;
begin
  Result := TUserSession(RWebApplication.Data).Datamodule1;
end;

procedure TDataModule1.ClientDataSet_editAfterInsert(DataSet: TDataSet);
var y,m,d:word;
begin
   decodedate(now,y,m,d);
   with  DataSet do begin
       Fieldbyname('fyear').asInteger:=y;
       Fieldbyname('fMonth').asInteger:=m;
       Fieldbyname('fday').asInteger:=d;
       Fieldbyname('UserID').asString:=UserSession.userID;
   end;

end;

procedure TDataModule1.ClientDataSet_editAfterPost(DataSet: TDataSet);
begin
   ClientDataSet_edit.ApplyUpdates(0);
end;

procedure TDataModule1.Qry_searchCalcFields(DataSet: TDataSet);
begin
    dataset.fieldByName('rowID').asInteger:=dataset.RecNo;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -