📄 datamodule.~pas
字号:
unit DataModule; //数据模块窗体项目
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
ADOConnection: TADOConnection;
AQ_Back_Restore: TADOQuery;
AT_Class: TADOTable;
AT_ClassClass_ID: TIntegerField;
AT_ClassClass_Name: TStringField;
AT_ClassClass_Branch: TStringField;
AT_ClassClass_Memo: TStringField;
AT_ClassArchives_SPerson: TStringField;
AT_ClassArchives_SDate: TDateTimeField;
AT_ClassArchives_MPerson: TStringField;
AT_ClassArchives_MDate: TDateTimeField;
DS_Class: TDataSource;
AT_Tank: TADOTable;
AT_TankTank_ID: TIntegerField;
AT_TankTank_Memo: TStringField;
AT_TankTank_Name: TStringField;
DS_Tank: TDataSource;
AQ_Manage: TADOQuery;
AQ_ManageContent_State: TStringField;
AQ_ManageContent_ID: TIntegerField;
AQ_ManageContent_Name: TStringField;
AQ_ManageContent_Person: TStringField;
AQ_ManageContent_Num: TIntegerField;
AQ_ManageContent_Tank: TIntegerField;
AQ_ManageContent_Class: TStringField;
AQ_ManageContent_SPerson: TStringField;
AQ_ManageContent_STime: TDateTimeField;
AQ_ManageContent_MPerson: TStringField;
AQ_ManageContent_MTime: TDateTimeField;
AQ_ManageContent_TNum: TIntegerField;
AQ_ManageContent_PNum: TIntegerField;
AQ_ManageContent_ANum: TIntegerField;
DS_Manage: TDataSource;
AT_Borrow: TADOTable;
AT_BorrowBorrow_ID: TIntegerField;
AT_BorrowBorrow_Name: TStringField;
AT_BorrowBorrow_Person: TStringField;
AT_BorrowBorrow_Date: TDateTimeField;
AT_BorrowBorrow_Memo: TStringField;
DS_Borrow: TDataSource;
AT_Return: TADOTable;
AT_ReturnReturn_ID: TIntegerField;
AT_ReturnReturn_Name: TStringField;
AT_ReturnReturn_Person: TStringField;
AT_ReturnReturn_Date: TDateTimeField;
AT_ReturnReturn_Memo: TStringField;
DS_Return: TDataSource;
AT_Count: TADOTable;
AT_CountCount_Name: TStringField;
AT_CountCount_Value: TIntegerField;
DS_Count: TDataSource;
procedure DataModuleCreate(Sender: TObject);
procedure DS_ClassStateChange(Sender: TObject);
procedure DS_ClassDataChange(Sender: TObject; Field: TField);
procedure DS_TankStateChange(Sender: TObject);
procedure DS_TankDataChange(Sender: TObject; Field: TField);
procedure DS_BorrowStateChange(Sender: TObject);
procedure DS_BorrowDataChange(Sender: TObject; Field: TField);
procedure DS_ReturnStateChange(Sender: TObject);
procedure DS_ReturnDataChange(Sender: TObject; Field: TField);
procedure DS_ManageStateChange(Sender: TObject);
procedure DS_ManageDataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
uses Archives_Class,Archives_Tank,Archives_Manage,Borrow_Return,Archives_Config,IniFiles,Windows,Forms;
//引用档案分类管理、档案柜管理、档案管理、档案借用和归还管理、数据库服务器配置项目
{$R *.dfm}
procedure TDM.DataModuleCreate(Sender: TObject);
var {*****数据模块窗体创建事件*****}
ini,iniW:TIniFile;
State:boolean;
CString:AnsiString;
str,str1:AnsiString;
begin
//打开INI文件,如果不存在则创建与应用程序同名,后缀名为.INI的ini配置文件
ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
State := ini.ReadBool('Database','Connection',false); //读取数据库连接是否成功标志,第一次读或者此项不存在时则返回默认值false赋State变量
if not State then //数据库没有连接成功
try //捕捉异常
F_Config := TF_Config.Create(Application); //动态创建数据库服务器配置窗体
F_Config.ShowModal; //显示数据库服务器配置窗口
except //抛出异常
on e:Exception do
Application.ShowException(e); //弹出异常对话框
end;
CString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog='; //字符串CString赋值
str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
CString := CString+str; //追加从配置文件读入的数据库名字符串
str1 := ini.ReadString('Database','Data Source','FLYYCS\\YCS'); //从配置文件读数据库服务器名
CString := CString+';Data Source='; //追加字符串到CString
CString := CString+str1; //追加从配置文件读入的数据库服务器名字符串
DM.ADOConnection.Connected := false;
DM.ADOConnection.ConnectionString := CString; //数据库连接属性字符串赋新值
try //捕捉异常
DM.ADOConnection.Connected := true; //启动与数据库服务器的连接
DM.AT_Class.Active := true; //激活各个数据表与服务器的连接
DM.AT_Tank.Active := true;
DM.AT_Borrow.Active := true;
DM.AT_Return.Active := true;
DM.AT_Count.Active := true;
DM.AQ_Manage.Active := true;
except //抛出异常
Application.MessageBox('与数据库服务器连接未成功,请重新配置','警告对话框',MB_OK);
end;
//打开INI文件,如果不存在则创建与应用程序同名,后缀名为.INI的ini配置文件
iniW := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
State := DM.ADOConnection.Connected; //取得数据库连接是否成功标志值
iniW.WriteBool('Database','Connection',State); //将数据库连接是否成功标志值写入配置文件
end;
procedure TDM.DS_ClassStateChange(Sender: TObject);
begin {*****档案分类管理数据源状态改变事件*****}
//当档案分类资料数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
// F_Class.ToolButton4.Enabled := (DS_Class.State=dsEdit)or(DS_Class.State=dsInsert);
// F_Class.ToolButton6.Enabled :=F_Class.ToolButton4.Enabled;
end;
procedure TDM.DS_ClassDataChange(Sender: TObject; Field: TField);
begin {*****档案分类资料数据源数据改变事件*****}
//档案分类资料数据集中至少有一条记录时,档案分类管理数据源删除按钮处于使能态
// F_Class.ToolButton3.Enabled := (AT_Class.RecordCount>0);
end;
procedure TDM.DS_TankStateChange(Sender: TObject);
begin {*****档案柜资料数据源状态改变事件*****}
//当档案柜资料数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
// F_Tank.ToolButton4.Enabled := (DS_Tank.State=dsEdit)or(DS_Tank.State=dsInsert);
// F_Tank.ToolButton6.Enabled :=F_Tank.ToolButton4.Enabled;
end;
procedure TDM.DS_TankDataChange(Sender: TObject; Field: TField);
begin {*****档案柜资料数据源数据改变事件*****}
//档案柜资料数据集中至少有一条记录时,档案分类管理数据源删除按钮处于使能态
// F_Tank.ToolButton3.Enabled := (AT_Tank.RecordCount>0);
end;
procedure TDM.DS_BorrowStateChange(Sender: TObject);
begin {*****档案借用数据源状态改变事件*****}
//当档案借用数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
// F_BReturn.ToolButton4.Enabled := (DS_Borrow.State=dsEdit)or(DS_Borrow.State=dsInsert);
// F_BReturn.ToolButton6.Enabled := F_BReturn.ToolButton4.Enabled;
end;
procedure TDM.DS_BorrowDataChange(Sender: TObject; Field: TField);
begin {*****档案借用数据源数据改变事件*****}
//档案借用数据集中至少有一条记录时,档案借用数据源删除按钮处于使能态
// F_BReturn.ToolButton3.Enabled := (AT_Borrow.RecordCount>0);
end;
procedure TDM.DS_ReturnStateChange(Sender: TObject);
begin {*****档案归还数据源状态改变事件*****}
//当档案归还数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
// F_BReturn.ToolButton4.Enabled := (DS_Return.State=dsEdit)or(DS_Return.State=dsInsert);
// F_BReturn.ToolButton6.Enabled := F_BReturn.ToolButton4.Enabled;
end;
procedure TDM.DS_ReturnDataChange(Sender: TObject; Field: TField);
begin {*****档案归还数据源数据改变事件*****}
//档案归还数据集中至少有一条记录时,档案归还数据源删除按钮处于使能态
// F_BReturn.ToolButton3.Enabled := (AT_Return.RecordCount>0);
end;
procedure TDM.DS_ManageStateChange(Sender: TObject);
begin {*****档案管理数据源状态改变事件*****}
//当档案管理数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
// F_Manage.ToolButton4.Enabled := (DS_Manage.State=dsEdit)or(DS_Manage.State=dsInsert);
// F_Manage.ToolButton6.Enabled := F_Manage.ToolButton4.Enabled;
end;
procedure TDM.DS_ManageDataChange(Sender: TObject; Field: TField);
begin {*****档案管理数据源更新事件*****}
//档案管理数据集中至少有一条记录时,档案分类管理数据源删除按钮处于使能态
// F_Manage.ToolButton3.Enabled := (AQ_Manage.RecordCount>0);
// F_Manage.ToolButton5.Enabled := not AQ_Manage.Bof; //数据集中当前活动记录不是首记录时,最前条按钮处于使能态
// F_Manage.ToolButton7.Enabled := F_Manage.ToolButton5.Enabled;
// F_Manage.ToolButton9.Enabled := not AQ_Manage.Eof; //数据集中当前活动记录不是未记录时,最后条按钮处于使能态
// F_Manage.ToolButton8.Enabled := F_Manage.ToolButton9.Enabled;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -