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

📄 unttemployee.pas

📁 销售软件
💻 PAS
字号:
(*===========================================================*)
(*                                                           *)
(*              Jerk Computer Assembly Manager               *)
(*                                                           *)
(*                    程序作者:杨芹勍                       *)
(*          武汉科技大学 理学院 信息与计算科学031班          *)
(*                  武汉科技大学 莘特工作室                  *)
(*                                                           *)
(*              IDE:Borland Delphi 2006 Update 2            *)
(*                 第三方控件:Raize 4.03                    *)
(*             数据库:Microsoft SQL Server 2000             *)
(*            数据库访问引擎:原生ADO(ADODB_TLB)           *)
(*           数据库管理引擎:JERK DBMANAGER ALPHA            *)
(*                                                           *)
(*           此软件及源代码归 JERK SYSTEM 版权所有           *)
(*            (C)Copyright 2002-2006 Jerk System.            *)
(*                                                           *)
(*===========================================================*)

unit untTEmployee;

interface

uses
  SysUtils,
  Variants,
  ADODB_TLB,
  JCAMTableView,
  JCAMConsts;

const
  TN_EMPLOYEE: string = 't_Employee';
  VN_EMPLOYEE: string = 'v_Employee';
  KFN_EMPLOYEE: string = 'Employee_ID';
  FN_EMPLOYEENAME: string = 'Employee_Name';
  PN_CHECKUSERVALID: string = 'sp_CheckUserValid';
  PN_CHECKUSERCANMODIFY: string = 'sp_CheckUserCanModify';
  PN_MODIFYPASSWORD: string = 'sp_ModifyPassword';
  PN_SAVEEMPLOYEEINFO: string = 'sp_SaveEmployeeInfo';
  PN_DELETEEMPLOYEEINFO: string = 'sp_DeleteEmployeeInfo';

type
  TTableEmployee = class( TCustomTableView )
  private
    m_rs: _Recordset;
    m_nEmployeeID: Integer;
    m_nEmployeeTypeID: Integer;
    m_nCanLoginID: Integer;
    m_sLoginName: string;
    m_sPassword: string;
    m_sEmployeeName: string;
    procedure pInitVariants;
    procedure SetLoginName( const Value: string );
    procedure SetPassword( const Value: string );
    procedure SetEmployeeID( const Value: Integer );
    procedure SetEmployeeName( const Value: string );
    procedure SetEmployeeTypeID( const Value: Integer );
    procedure SetCanLoginID( const Value: Integer );
  public
    procedure GetAllFieldsValue; override;
    property Connection;
    constructor Create; override;
    destructor Destroy; override;
    property EmployeeID: Integer
      read m_nEmployeeID
      write SetEmployeeID default -1;
    property EmployeeTypeID: Integer
      read m_nEmployeeTypeID
      write SetEmployeeTypeID
      default -1;
    property CanLoginID: Integer
      read m_nCanLoginID
      write SetCanLoginID
      default 0;
    property LoginName: string
      read m_sLoginName
      write SetLoginName;
    property Password: string
      read m_sPassword
      write SetPassword;
    property EmployeeName: string
      read m_sEmployeeName
      write SetEmployeeName;
    function CheckUserValid( const sLoginName, sPassword: string; var
      bIsCanLogin, bIsCanModify: Boolean ): Boolean;
    function CheckUserCanModify( const sLoginName: string; var bIsCanModify:
      Boolean ): Boolean;
    function ModifyPassword( const sLoginName, sPassword,
      sNewPassword: string ): Boolean;
  end;

implementation

{ TTableEmployee }

constructor TTableEmployee.Create;
begin
  inherited;

  pInitVariants;
  m_rs := CoRecordset.Create;
end;

destructor TTableEmployee.Destroy;
begin
  m_rs := nil;

  inherited;
end;

procedure TTableEmployee.GetAllFieldsValue;
begin
  inherited;

  try
    if m_rs.EOF then
      pInitVariants
    else
    begin
      m_nEmployeeID := Integer( m_rs.Fields[ 'Employee_ID' ].Value );
      m_nEmployeeTypeID := Integer( m_rs.Fields[ 'EmployeeType_ID' ].Value );
      m_nCanLoginID := Integer( m_rs.Fields[ 'CanLogin_ID' ].Value );
      m_sLoginName := VarToStr( m_rs.Fields[ 'LoginName' ].Value );
      m_sPassword := VarToStr( m_rs.Fields[ 'Password' ].Value );
      m_sEmployeeName := VarToStr( m_rs.Fields[ 'Employee_Name' ].Value );
    end;
  except
  end;
end;

function TTableEmployee.CheckUserCanModify( const sLoginName: string; var
  bIsCanModify: Boolean ): Boolean;
var
  par: _Parameter;
  cmd: _Command;
begin
  { 检查用户是否允许修改数据库 }

  cmd := CoCommand.Create;
  cmd.Set_ActiveConnection( Connection );
  cmd.CommandText := PN_CHECKUSERCANMODIFY;
  cmd.CommandType := adCmdStoredProc;
  par := cmd.CreateParameter(
    'Return', adBoolean, adParamReturnValue, 1, EmptyParam );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'LoginName', adVarChar, adParamInput, 100, sLoginName );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'CanModify', adBoolean, adParamOutput, 1, bIsCanModify );
  cmd.Parameters.Append( par );
  cmd.Execute( EmptyParam, EmptyParam, adCmdStoredProc + adExecuteNoRecords );
  bIsCanModify := Boolean( cmd.Parameters[ 'CanModify' ].Value );

  Result := cmd.Parameters[ 'Return' ].Value;

  par := nil;
  cmd := nil;
end;

function TTableEmployee.CheckUserValid( const sLoginName,
  sPassword: string; var bIsCanLogin, bIsCanModify: Boolean ): Boolean;
var
  par: _Parameter;
  cmd: _Command;
begin
  { 调用存储过程检查用户是否有效 }

  cmd := CoCommand.Create;
  cmd.Set_ActiveConnection( Connection );
  cmd.CommandText := PN_CheckUserValid;
  cmd.CommandType := adCmdStoredProc;
  par := cmd.CreateParameter(
    'Return', adBoolean, adParamReturnValue, 1, EmptyParam );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'UserName', adVarChar, adParamInput, 50, sLoginName );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'Password', adVarChar, adParamInput, 50, sPassword );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'CanLogin', adBoolean, adParamOutput, 1, bIsCanLogin );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'CanModify', adBoolean, adParamOutput, 1, bIsCanLogin );
  cmd.Parameters.Append( par );
  cmd.Execute( EmptyParam, EmptyParam, adCmdStoredProc + adExecuteNoRecords );
  bIsCanLogin := Boolean( cmd.Parameters[ 'CanLogin' ].Value );
  bIsCanModify := Boolean( cmd.Parameters[ 'CanModify' ].Value );

  Result := cmd.Parameters[ 'Return' ].Value;

  par := nil;
  cmd := nil;
end;

procedure TTableEmployee.pInitVariants;
begin
  m_nEmployeeID := -1;
  m_nEmployeeTypeID := -1;
  m_nCanLoginID := -1;
  m_sLoginName := EmptyStr;
  m_sPassword := EmptyStr;
  m_sEmployeeName := EmptyStr;
end;

function TTableEmployee.ModifyPassword( const sLoginName, sPassword,
  sNewPassword: string ): Boolean;
var
  par: _Parameter;
  cmd: _Command;
begin
  { 修改用户登陆密码 }

  //pa := CoParameter.Create;
  cmd := CoCommand.Create;
  cmd.Set_ActiveConnection( Connection );
  cmd.CommandText := PN_ModifyPassword;
  cmd.CommandType := adCmdStoredProc;
  par := cmd.CreateParameter(
    'Return', adBoolean, adParamReturnValue, 1, EmptyParam );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'LoginName', adVarChar, adParamInput, 50, sLoginName );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'Password', adVarChar, adParamInput, 50, sPassword );
  cmd.Parameters.Append( par );
  par := cmd.CreateParameter(
    'NewPassword', adVarChar, adParamInput, 50, sNewPassword );
  cmd.Parameters.Append( par );
  cmd.Execute( EmptyParam, EmptyParam, adCmdStoredProc + adExecuteNoRecords );

  Result := cmd.Parameters[ 'Return' ].Value;

  par := nil;
  cmd := nil;
end;

procedure TTableEmployee.SetCanLoginID( const Value: Integer );
begin
  if m_rs.State <> adStateClosed then
    m_rs.Close;
  m_rs.Open( 'SELECT * FROM [' + TN_Employee + '] WHERE [Locked_ID]=' +
    IntToStr( Value ),
    Connection,
    adOpenForwardOnly, adLockReadOnly, adCmdText );
  GetAllFieldsValue;
end;

procedure TTableEmployee.SetLoginName( const Value: string );
begin
  if m_rs.State <> adStateClosed then
    m_rs.Close;
  m_rs.Open( 'SELECT * FROM [' + TN_Employee + '] WHERE [LoginName]=''' + Value
    + '''',
    Connection,
    adOpenForwardOnly, adLockReadOnly, adCmdText );
  GetAllFieldsValue;
end;

procedure TTableEmployee.SetPassword( const Value: string );
begin
  if m_rs.State <> adStateClosed then
    m_rs.Close;
  m_rs.Open( 'SELECT * FROM [' + TN_Employee + '] WHERE [Password]=''' + Value +
    '''',
    Connection,
    adOpenForwardOnly, adLockReadOnly, adCmdText );
  GetAllFieldsValue;
end;

procedure TTableEmployee.SetEmployeeID( const Value: Integer );
begin
  if m_rs.State <> adStateClosed then
    m_rs.Close;
  m_rs.Open( 'SELECT * FROM [' + TN_Employee + '] WHERE [Employee_ID]=' +
    IntToStr( Value ),
    Connection,
    adOpenForwardOnly, adLockReadOnly, adCmdText );
  GetAllFieldsValue;
end;

procedure TTableEmployee.SetEmployeeName( const Value: string );
begin
  if m_rs.State <> adStateClosed then
    m_rs.Close;
  m_rs.Open( 'SELECT * FROM [' + TN_Employee + '] WHERE [Employee_Name]=''' +
    Value + '''',
    Connection,
    adOpenForwardOnly, adLockReadOnly, adCmdText );
  GetAllFieldsValue;
end;

procedure TTableEmployee.SetEmployeeTypeID( const Value: Integer );
begin
  if m_rs.State <> adStateClosed then
    m_rs.Close;
  m_rs.Open( 'SELECT * FROM [' + TN_Employee + '] WHERE [EmployeeType_ID]=' +
    IntToStr( Value ),
    Connection,
    adOpenForwardOnly, adLockReadOnly, adCmdText );
  GetAllFieldsValue;
end;

end.

⌨️ 快捷键说明

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