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

📄 datam.pas

📁 这是一个DELPHI7应用案例开发篇有配套程序种子光盘
💻 PAS
字号:
unit DataM;

interface

uses
  SysUtils, Classes, DB, DBClient, MConnect, Variants, Forms, Controls,
  RpCon, RpConDS, RpDefine, RpRave;

type
  TDataModule1 = class(TDataModule)
    DCOMConnection1: TDCOMConnection;
    cdsBookBySerial: TClientDataSet;
    cdsBook: TClientDataSet;
    dsBook: TDataSource;
    cdsBuy2: TClientDataSet;
    cdsBuy1: TClientDataSet;
    dsBuy2: TDataSource;
    dsBuy1: TDataSource;
    dsTmpBuy1: TDataSource;
    cdsTmpBuy1: TClientDataSet;
    cdsBuy2BuySerial: TIntegerField;
    cdsBuy2BuyDate: TDateField;
    cdsBuy2Memoir: TMemoField;
    cdsBuy2tbBuy1: TDataSetField;
    cdsBuy1BuySerial: TIntegerField;
    cdsBuy1BookSerial: TStringField;
    cdsBuy1BookCount: TBCDField;
    cdsBuy1TotalPrice: TBCDField;
    cdsTmpBuy1BookSerial: TStringField;
    cdsTmpBuy1BookCount: TBCDField;
    cdsTmpBuy1TotalPrice: TBCDField;
    cdsUser: TClientDataSet;
    dsUser: TDataSource;
    RvProject1: TRvProject;
    RvDataSetBook: TRvDataSetConnection;
    RvDataSetBuy2: TRvDataSetConnection;
    RvDataSetBuy1: TRvDataSetConnection;
    cdsBuy1BookName: TStringField;
    procedure DataModuleCreate(Sender: TObject);
    procedure dsBookDataChange(Sender: TObject; Field: TField);
    procedure cdsBuy1BeforePost(DataSet: TDataSet);
  private
    { Private declarations }
  public
    Priv : Integer;
  end;

var
  DataModule1: TDataModule1;

implementation

uses Book, DIMime, Jpeg, Dialogs, Login;
// START resource string wizard section
resourcestring
  SDataM_LOGINERROR = '连续3次密码输入错误,应用程序即将退出!';
  SDataM_BookSerialIsNotCorrect = '"BookSerial" is not correct!';

// END resource string wizard section


{$R *.dfm}

procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
    i:Integer;
    res:Integer;
begin
    frmLogin := TfrmLogin.Create(Application);
    for i:=0 to 2 do
    begin
        if frmLogin.ShowModal = mrOK then
        begin
            try
                res := DCOMConnection1.AppServer.Login(frmLogin.edUserName.Text,
                    frmLogin.edPassword.Text);
                Priv := res;
            except
                on e:Exception do
                begin
                    if i=2 then
                    begin
                        MessageDlg(SDataM_LOGINERROR,
                            mtError, [mbOK], 0);
                        Application.Terminate;
                    end
                    else
                    begin
                        MessageDlg(E.Message, mtError, [mbOK], 0);
                        Continue;
                    end;
                end;
            end;
            Break;
        end
        else
            Application.Terminate;
    end;

    cdsBook.Open;

    cdsBuy2.Open;
    cdsBuy1.Open;
    cdsTmpBuy1.Open;
end;

procedure TDataModule1.dsBookDataChange(Sender: TObject; Field: TField);
var
    jImage:TJpegImage;
    ss: TStringStream;
    bSize:Integer;
begin
    if Assigned(frmBook) then
        with frmBook do
        begin
            bSize :=TBlobField(DataModule1.cdsBook.FieldByName('BookCover')).BlobSize;
            Caption := IntToStr(bSize);
            if  bSize>0 then
            begin
                jImage := TJpegImage.Create;
                with DataModule1 do
                begin
                    ss := TStringStream.Create(MIMEDecodeString(cdsBook.FieldByName('BookCover').AsString));
                    ss.Seek(0, soFromBeginning);
                    jImage.LoadFromStream(ss);
                    Image1.Picture.Assign(jImage);
                    ss.Free;
                end;
                jImage.Free;
            end;
        end;
end;

procedure TDataModule1.cdsBuy1BeforePost(DataSet: TDataSet);
begin
    cdsBook.CheckBrowseMode;
    if VarType(cdsBook.Lookup('BookSerial',cdsBuy1.FieldByName('BookSerial').AsString,
        'BookSerial')) in [varNULL] then
    begin
        MessageDlg(SDataM_BookSerialIsNotCorrect, mtError, [mbOK], 0);
        Abort;
    end;
end;

end.

⌨️ 快捷键说明

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