📄 unttemployee.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 + -