中南大学数据库技术与应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库技术与应用》
实验报告
实验题目:宾馆信息管理系统
学生专业:自动化
指导老师:安剑奇
班级:自动化0XXX
姓名: XXXXXX
学号: 090XXXX
中南大学信息科学与工程学院
2011年1月
目录
第一章需求说明 (3)
1.1 宾馆信息管理系统简介…………………………………… 3.
1.2 设计要求……………………………………………………3..
1.2.1数据需求 (3)
1.2.2 需求分析 (3)
1.2.3 系统业务逻辑关系介绍 (4)
第二章数据库结构设计 (6)
2.1概念结构设计的方法与步骤 (6)
2.1.1 概念结构设计的方法 (6)
2.1.2 概念结构设计的步骤 (6)
2.1.3 系统的E-R模型 (7)
2.2逻辑结构设计步骤…………………………………8.
2.2.1 E-R图向系统关系模式的转换 (8)
2.2.2确定关系模式的外码 (8)
2.2.3确定表中各属性的详细信息(包括数据类型和长度等) (8)
2.2.4建表并确定约束关系 (9)
2.2.5报表的设计(视图的设计) (9)
第三章数据库行为功能设计…………………………………9.
3.1安全控制 (9)
3.2 数据操作 (10)
3.3 生成报表……………………………………………………………17. 3.4存储过程设计………………………………………………………18..
第四章总结与展望 (19)
附:Delphi源代码 (20)
第一章需求说明
1.1 宾馆信息管理系统简介
宾馆管理信息系统是为宾馆量身定做的一套软件系统。
它以客人预订客房、入住、顾客信息管理和最后的退房结算为主线,提供查询,报表等一系列简单的任务,完成宾馆的信息化管理工作。
1.2 设计要求
1.2.1 数据需求
根据系统的需求,首先将要记录的信息分类,要记录的信息如下。
(1)顾客信息:包括顾客姓名、性别、身份证号、入住日期、结算日期等。
(2)客房信息:包括客房编号、客房类型、客房状态、客房价格、备注信息等。
(3)客房类型信息:包括类型编号、类型名称、床位数量、空调有无、电视有无、卫生间有无、价格等。
(4)订房信息:包括订房编号、客房编号、顾客姓名、身份证号、入住日期、结算日期、结算金额、备注等。
(5)系统管理者信息:包括管理者登录账号、密码等。
(6)工作员工信息:包括员工姓名、性别、身份证号、登录账号、密码等。
根据这些需要,本系统需要“顾客信息”表,“客房信息”表,“客房类型”表,“订房信息”表,“管理者信息”表和“员工信息”表。
1.2.2 需求分析
经过分析,简单的宾馆信息管理系统主要应该具有以下功能模块,如图1.1。
(1)在顾客信息管理部分,要求如下。
●可以浏览顾客信息。
●可以对顾客信息进行维护,包括添加、删除、修改等操作。
(2)在客房管理部分,要求如下。
●可以浏览客房信息。
●可以对客房信息进行维护(包括客房信息和客房类型表中的内容),
包括添加、删除、修改等操作。
(3)在订房信息管理部分,要求如下。
● 可以浏览订房信息。
● 可以对订房信息进行维护,包括添加、删除、修改等操作。
(4)在管理员首页的管理员信息管理部分,要求如下。
● 显示当前数据库中管理者情况。
● 对管理者信息维护操作。
(5)在管理者首页的员工信息管理部分,要求如下。
● 可以查看员工信息。
● 可以对员工信息进行维护。
(6)在员工首页的个人信息管理部分,要求如下。
● 可以查看员工个人信息。
● 可以对个人信息进行维护。
(7)在员工首页的员工信息查询部分,要求如下。
● 可以查看所有员工基本信息(登录账号及密码除外)。
图1.1系统逻辑业务关系
1.2.3 系统业务逻辑关系介绍
顾
客信息管理
客房信息管理
订房信息管理
管理员信息
员工信息管理 顾客信息管理 客房信息管理 订房信息管理
员工个人信息管理
员工信息查询
用户登陆
管理员 员工
注销 注销
可以分别以管理员身份和员工身份登陆,然后再执行各项操作。
如图 1.2所示,它显示了管理员登陆界面,如图1.3、1.4,显示了上述图1.1所示的系统业务逻辑关系。
图1.2 管理员登陆界面
图1.3管理员首页
图1.4员工首页
第二章数据库结构设计
2.1 概念结构设计的方法与步骤
2.1.1 概念结构设计的方法
本系统采用自底向上的概念结构设计方法。
即首先定义各局部应用的概念结构,然后将它们集成起来得到全局概念模式。
2.1.2 概念结构设计的步骤
概念结构设计可分为两个步骤:
1、抽象数据并设计局部视图。
就是对需求分析阶段收集到的数据按照E-R 模型的要求进行分类、组织,形成实体的属性,标识实体的键,确定实体之间的联系类型,设计分E-R图。
2、集成局部视图,得到全局的概念结构。
就是要将所有的分E-R图综合成
一个系统的总E-R 图。
2.1.3 系统的E-R 模型
顾客信息
备注
订房
身份证号
顾客姓名
结算日期
入住日期
订房编号
结算金额
性别
客房类型
类型编号
价格
类型名称
床位数量
空调有无
电视有无
卫生间有无
分类
客房信息
客房编号
客房类型
备注
价格
客房空闲与否
联系方式
员工信息 员工姓名
密码
身份证号
性别
登陆账号
2.2 逻辑结构设计步骤
2.2.1 E-R图向系统关系模式的转换
有了基本E-R图后,就可以进行逻辑结构设计了,也就是设计基本的关系模型。
设计基本关系模式主要是从E-R图出发,将其直接转换为关系模式。
根据转换规则,这个E-R图转换的关系模式为:
1)客房类型(类型编号、类型名称、床位数量、空调有无、电视有无、卫生间有无、价格),主码为类型编号;
2)客房(客房编号、客房类型、客房空闲与否、价格、备注),主码为客房编号;3)订房(订房编号、客房编号、顾客姓名、备注、结算金额),主码为订房编号;4)顾客(姓名、性别、身份证号、入住日期、结算日期、联系方式),主码为身份证号;
5)员工(姓名、性别、身份证号、登陆账号、密码)
2.2.2 确定关系模式的外码
在设计好了关系模式并确定好了每个关系模式的主码后,再看一下这些关系模式之间的关联关系,即确定关系模式的外码,可通过E-R图中的联系实体发现:订房关系中,客房编号是外码,引用客房信息中的客房编号;订房关系中的顾客姓名引用顾客信息中的顾客姓名;
分类关系中,客房类型中的类型名称与客房信息中的客房类型是一样的;
2.2.3 确定表中各属性的详细信息(包括数据类型和长度等)
(1)客房类型表:
类型编号: char(10),key
类型名称: char(16),not null
床位数量: numeric(9)
空调有无: char(2)
电视有无: char(2)
卫生间有无:char(2)
价格: numeric(10,2)
(2)客房信息表:
客房编号:varchar(12),key
客房类型:char(16),not null
客房空闲与否:char(2)
备注信息:text(16)
(3)顾客信息表:
顾客姓名: char(10),not null
身份证号: char(18),key
联系方式: varchar(50)
入住日期: datetime(8)
结算日期: datetime(8)
(4)订房信息表:
订房编号: char(14),key
顾客姓名: char(10),not null
客房编号:varchar(12),not null
结算金额:numeric(9)
备注:text(16)
(5)员工信息表:
姓名: char(10),not null
性别: char(2)
身份证号:char(18),key
登陆账号:char(20)
密码: char(20)
(6)管理者信息表:
登录账号:char(20),key
密码: char(20),not null
2.2.4 建表并确定约束关系
约束关系:主码外码(如2.2.2所分析),规则(性别中只能输入男或女),默认(员工默认登录密码是111111)。
2.2.5 报表的设计(视图的设计)
有了数据库的基本表之后,应该看一下这些基本表能否满足产生报表的需
求。
在数据库应用系统中,用户需要产生大量的报表,而报表的内容来自于数据
库中的基本表,因此,在设计好数据库的基本表之后,要看一下这些基本表的内
容是否全部包含了要产生的报表的内容。
订房信息(订房编号,顾客姓名,客房编号,入住日期,结算日期,结算金
额,备注)
顾客姓名、入住日期和结算日期,可由顾客信息表得到;客房编号可由客房
信息表得到;因此,可以满足订房信息表的要求,可以通过定义视图实现。
第三章数据库行为功能设计
3.1 安全控制
(1)系统管理员:有对系统的全部权限;
(2)员工:有除添加、修改、删除其他员工信息的权限;
3.2 数据操作
数据操作功能包括对这些数据进行录入、删除、修改功能。
(1)数据录入
只有具有相应权限的用户才能录入相应表中的数据。
(2)数据删除
只有具有相应权限的用户才能删除相应表中的数据。
删除数据时要注意表之间的关联关系,另外,在删除以前须提醒用户确认是否真的要删除此数据。
(3)数据修改
只有具有相应权限的用户才能修改相应表中的数据。
(4)数据查询
本系统应具有的一些查询要求有:
根据顾客姓名、性别、身份证号、入住日期、结算日期等信息查询顾客的基本信息;
根据客房编号、客房类型、客房状态等查询客房的基本信息;
根据订房编号、客房编号、顾客姓名、入住日期、结算日期等查询顾客的订房情况:
本系统用Delphi设计了数据操作的界面,完成数据录入、修改删除、查询等功能;
数据操作的界面截图如下:
管理者、员工首页:
注:查询、修改、添加、删除功能截图以顾客信息管理为例顾客信息管理:选择方式查询
顾客信息管理:添加了一条记录
顾客信息管理:修改了一条记录
顾客信息管理:删除记录
客房信息管理:添加客房类型
订房信息管理
系统管理员信息:
系统管理员:员工信息管理
员工:对其他员工信息查询
员工个人信息维护:
3.3 生成报表
3.4 存储过程设计
存储过程1代码:
GO CREATE PROCEDURE add_LX
@LXbh char(10),
@LXname char(10),
@bedno numeric(9),
@kt char(2),
@TV char(2),
@wsj char(2),
@price char(10)
AS
insert into 客房类型表(类型编号,类型名称,床位数量,空调有无,电视有无,卫生间有无,价格) values
(@LXbh,@LXname,@bedno,@kt,@TV,@wsj,@price)
select * from 客房类型表
存储过程2代码:
CREATE PROCEDURE add_kfxx
@kfbh varchar(12),
@name char(16),
@state char(2),
@bz text
AS
insert into 客房信息表(客房编号,客房类型,客房空闲与否,备注信息) values(@kfbh,@name,@state,@bz)
select * from 客房信息表
GO
第四章总结与展望
1、设计的数据库系统的成功经验与不足
所设计的数据库系统,在概念结构、逻辑结构方面比较清晰明确,能够涉及基本的功能需求;在利用SQL Server 2000创建数据库的过程中,对所学的知识如表的创建、视图的设计、规则和默认的使用,以及存储过程、角色等在运用中有了更深的理解和认识。
由于知识的欠缺,对一些知识的运用不够灵活,同时,在用Delphi设计前台界面时,一边自学、一边设计,遇到了很多问题,最终所需设计基本完成,但还有待进一步完善。
2、在学习建立数据库系统的过程中,感受如下:
扎实的理论基础。
如果不掌握它们,很难写出高水平的程序。
而这一点又是我们所缺乏的。
必要时与其他人交流,通过讨论解决问题。
要有良好的编程风格。
注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。
总之,通过这次课程设计,我更加熟练的掌握了使用了数据库应用系统进行系统开发及设计的方法,加深了对数据库课程知识的理解,同时也更加深入的了解了利用SQL语言操纵数据库的知识,并且对数据库里面的存储过程有了比较深入的了解。
经过一个月之内的努力,我终于完成了我的数据库课程设计宾馆信息管理系统。
进一步提高分析解决问题的综合能力。
由于时间、经验不足等的限制,系统还有很多不足之处,所以开发的系统不是很完善,但是宾馆管理的基本功能均已实现。
以前对数据库的很多知识认识都不深刻,做过这次课程设计之后,我对数据库的知识有了一个比较系统的了解;刚开始的时候,对于数据库设计方法等一系列知识都不熟悉,但当我基本完成此系统开发的时候,我发现其实也没有那么难,在未做之前我还害怕做不出来。
经过对这个系统的开发,在开发过程中遇到但也解决了很多问题。
这个课程设计使我巩固了数据库的知识。
此外,还尝试并体会到了自学一门语言(Delphi)的纠结与乐趣,这将成为我今后学习的宝贵经验。
在今后的学习中我会加强理论与实践的结合,通过不断的摸索来弥补自己的不足之处。
附:Delphi源代码:
一、
implementation
uses Unit2,Unit3;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
user:string; password:string;
begin
user:=edit1.Text;
password:=edit2.Text;
edit1.Text:='';
edit2.Text:='';
if(user<>'')and(password<>'') then
ADOQuery1.Close;
ADOQuery1.sql.clear;
case combobox1.ItemIndex of
0:
begin
ADOQuery1.sql.Add('select * from 管理者信息表where 登录账号=:user and 密码=:password');
ADOQuery1.Parameters.parambyname('user').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('user').Value:=user;
ADOQuery1.Parameters.parambyname('password').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('password').Value:=password;
ADOQuery1.Open;
if NOT ADOQuery1.IsEmpty then
begin
Form2.Show;
end;
if ADOQuery1.IsEmpty then
begin
showmessage('用户名不存在或密码错误!');
edit2.Text:='';
edit1.SetFocus;
end;
end;
1:
begin
ADOQuery1.sql.Add('select * from 员工信息表where 登录账号=:user and 密码=:password');
ADOQuery1.Parameters.parambyname('user').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('user').Value:=user;
ADOQuery1.Parameters.parambyname('password').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('password').Value:=password;
ADOQuery1.Open;
if NOT ADOQuery1.IsEmpty then
begin
Form3.Show;
end;
if ADOQuery1.IsEmpty then
begin
showmessage('用户名不存在或密码错误!');
edit2.Text:='';
edit1.SetFocus;
end;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;
end.
二、
implementation
uses Unit4,Unit5,Unit6,Unit7,Unit8;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
Form6.Show;
end;
procedure TForm2.Button4Click(Sender: TObject);
begin
Form7.Show;
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
Form8.Show;
procedure TForm2.Button6Click(Sender: TObject); begin
Form2.Close;
end;
end.
三、
implementation
uses Unit4,Unit5,Unit6,Unit9,Unit10;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject); begin
Form4.Show;
end;
procedure TForm3.Button2Click(Sender: TObject); begin
Form5.Show;
end;
procedure TForm3.Button3Click(Sender: TObject); begin
Form6.Show;
end;
procedure TForm3.Button5Click(Sender: TObject); begin
Form9.Show;
end;
procedure TForm3.Button4Click(Sender: TObject); begin
Form10.show;
end;
procedure TForm3.Button6Click(Sender: TObject); begin
Form3.Close;
end;
end.
四、
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject); var
gkcx:string;
gkcx:=edit1.Text;
edit1.Text:='';
case combobox1.ItemIndex of
0:
begin
if(gkcx='') then
begin
showmessage('请输入您需要查询的顾客姓名!');
end;
if (gkcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 顾客信息表WHERE 顾客姓名=:gkcx'); ADOQuery1.Parameters.parambyname('gkcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('gkcx').Value:=gkcx;
ADOQuery1.Open;
end;
1:
begin
if(gkcx='') then
begin
showmessage('请输入您需要查询的顾客性别!');
end;
if (gkcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 顾客信息表WHERE 性别=:gkcx'); ADOQuery1.Parameters.parambyname('gkcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('gkcx').Value:=gkcx;
ADOQuery1.Open;
end;
2:
begin
if(gkcx='') then
begin
showmessage('请输入您需要查询的顾客身份证号!');
end;
if (gkcx<>'') then
//ADOQuery1.Open;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 顾客信息表WHERE 身份证号=:gkcx'); ADOQuery1.Parameters.parambyname('gkcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('gkcx').Value:=gkcx;
ADOQuery1.Open;
end;
3:
begin
if(gkcx='') then
begin
showmessage('请输入您需要查询的入住日期!');
end;
if (gkcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 顾客信息表WHERE 入住日期=:gkcx'); ADOQuery1.Parameters.parambyname('gkcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('gkcx').Value:=gkcx;
ADOQuery1.Open;
end;
4:
begin
if(gkcx='') then
begin
showmessage('请输入您需要查询的结算日期!');
end;
if (gkcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 顾客信息表WHERE 结算日期=:gkcx'); ADOQuery1.Parameters.parambyname('gkcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('gkcx').Value:=gkcx;
ADOQuery1.Open;
end;
5:
begin
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.SQL.Add('select * from 顾客信息表');
ADOQuery1.Open;
end;
end;
end;
procedure TForm4.Edit1Click(Sender: TObject);
begin
edit1.Text:='';
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
combobox1.Text:='';
ADOQuery1.Close;
form4.Close;
end;
end.
五、
implementation
{$R *.dfm}
procedure TForm5.Button1Click(Sender: TObject);
var kfcx:string;
begin
kfcx:=edit1.Text;
edit1.Text:='';
case combobox1.ItemIndex of
0:
begin
if(kfcx='') then
begin
showmessage('请输入您需要查询的客房编号!');
end;
if (kfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 客房信息表.客房编号,客房信息表.客房类型,客房信息表.客房空闲与否,客房类型表.类型编号,客房类型表.床位数量,客房类型表.空调有无,客房类型表.
电视有无,客房类型表.卫生间有无,客房类型表.价格,客房信息表.备注信息');
ADOQuery1.SQL.Add('from 客房信息表,客房类型表where 客房信息表.客房类型=客房类型表.类型名称and 客房编号=:kfcx order by 客房信息表.客房编号');
ADOQuery1.Parameters.parambyname('kfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('kfcx').Value:=kfcx;
ADOQuery1.Open;
end;
1:
begin
if(kfcx='') then
begin
showmessage('请输入您需要查询的客房状态(是或否)');
end;
if (kfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 客房信息表.客房编号,客房信息表.客房类型,客房信息表.客房空闲与否,客房类型表.类型编号,客房类型表.床位数量,客房类型表.空调有无,客房类型表.电视有无,客房类型表.卫生间有无,客房类型表.价格,客房信息表.备注信息');
ADOQuery1.SQL.Add('from 客房信息表,客房类型表where 客房信息表.客房类型=客房类型表.类型名称and 客房空闲与否=:kfcx order by 客房信息表.客房编号');
ADOQuery1.Parameters.parambyname('kfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('kfcx').Value:=kfcx;
ADOQuery1.Open;
end;
2:
begin
if(kfcx='') then
begin
showmessage('请输入您需要查询的客房类型编号');
end;
if (kfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 客房信息表.客房编号,客房信息表.客房类型,客房信息表.客房空闲与否,客房类型表.类型编号,客房类型表.床位数量,客房类型表.空调有无,客房类型表.电视有无,客房类型表.卫生间有无,客房类型表.价格,客房信息表.备注信息');
ADOQuery1.SQL.Add('from 客房信息表,客房类型表where 客房信息表.客房类型=客房类型表.类型名称and 类型编号=:kfcx');
ADOQuery1.Parameters.parambyname('kfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('kfcx').Value:=kfcx;
ADOQuery1.Open;
end;
3:
begin
if(kfcx='') then
begin
showmessage('请输入您需要查询的客房类型名称');
end;
if (kfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 客房信息表.客房编号,客房信息表.客房类型,客房信息表.客房空闲与否,客房类型表.类型编号,客房类型表.床位数量,客房类型表.空调有无,客房类型表.电视有无,客房类型表.卫生间有无,客房类型表.价格,客房信息表.备注信息');
ADOQuery1.SQL.Add('from 客房信息表,客房类型表where 客房信息表.客房类型=客房类型表.类型名称and 类型名称=:kfcx order by 客房信息表.客房编号');
ADOQuery1.Parameters.parambyname('kfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('kfcx').Value:=kfcx;
ADOQuery1.Open;
end;
4:
begin
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 客房信息表.客房编号,客房信息表.客房类型,客房信息表.客房空闲与否,客房类型表.类型编号,客房类型表.床位数量,客房类型表.空调有无,客房类型表.电视有无,客房类型表.卫生间有无,客房类型表.价格,客房信息表.备注信息');
ADOQuery1.SQL.Add('from 客房信息表,客房类型表where 客房类型表.类型名称=客房类型表.类型名称order by 客房信息表.客房编号');
ADOQuery1.Open;
end;
end;
end;
procedure TForm5.Button2Click(Sender: TObject);
begin
combobox1.Text:='';
ADOQuery1.Close;
Form5.Close;
end;
procedure TForm5.Button3Click(Sender: TObject);
var bh:string; lxname:string; bed:string; kt:string; tv:string; wsj:string; price:string; kfbh:string; kfstate:string; bzxx:string; kflxname:string;
begin
bh:=edit2.Text;
lxname:=edit3.Text;
kflxname:=edit3.Text;
bed:=edit4.Text;
kt:=edit5.Text;
tv:=edit7.Text;
wsj:=edit6.Text;
price:=edit8.Text;
kfbh:=edit9.Text;
kfstate:=edit10.Text;
bzxx:=edit11.Text;
if (bh<>'')and(name<>'') then
begin
with ADOStoredProc1 do
begin
close;
Parameters.ParamByName('@LXbh').Value:=bh;
Parameters.ParamByName('@LXname').Value:=lxname;
Parameters.ParamByName('@bedno').Value:=bed;
Parameters.ParamByName('@kt').Value:=kt;
Parameters.ParamByName('@TV').Value:=tv;
Parameters.ParamByName('@wsj').Value:=wsj;
Parameters.ParamByName('@price').Value:=price;
execproc;
end;
with ADOStoredProc2 do
begin
close;
Parameters.ParamByName('@kfbh').Value:=kfbh;
Parameters.ParamByName('@name').Value:=kflxname;
Parameters.ParamByName('@state').Value:=kfstate;
Parameters.ParamByName('@bz').Value:=bzxx;
execproc;
edit9.SetFocus;
showmessage('添加成功!');
end;
end;
end;
procedure TForm5.Button4Click(Sender: TObject);
begin
ADOQuery1.Close;
form5.Close;
end;
end.
六、
implementation
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
var dfcx:string;
begin
dfcx:=edit1.Text;
edit1.Text:='';
case combobox1.ItemIndex of
0:
begin
if(dfcx='') then
begin
showmessage('请输入您需要查询的订房编号!');
end;
if (dfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 订房信息表.订房编号,订房信息表.顾客姓名,订房信息表.客房编号,客房信息表.客房空闲与否,客房信息表.客房类型,顾客信息表.入住日期,顾客信息表.
结算日期,订房信息表.结算金额,订房信息表.备注');
ADOQuery1.SQL.Add('from 订房信息表,客房信息表,顾客信息表where 订房信息表.客房编号=客房信息表.客房编号and 订房信息表.顾客姓名=顾客信息表.顾客姓名and 订房编号=:dfcx');
ADOQuery1.Parameters.parambyname('dfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('dfcx').Value:=dfcx;
ADOQuery1.Open;
end;
1:
begin
if(dfcx='') then
begin
showmessage('请输入您需要查询的顾客姓名');
end;
if (dfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 订房信息表.订房编号,订房信息表.顾客姓名,订房信息表.客房编号,客房信息表.客房空闲与否,客房信息表.客房类型,顾客信息表.入住日期,顾客信息表.结算日期,订房信息表.结算金额,订房信息表.备注');
ADOQuery1.SQL.Add('from 订房信息表,客房信息表,顾客信息表where 订房信息表.客房编号=客房信息表.客房编号and 订房信息表.顾客姓名=顾客信息表.顾客姓名and 订房信息表.顾客姓名=:dfcx');
ADOQuery1.Parameters.parambyname('dfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('dfcx').Value:=dfcx;
ADOQuery1.Open;
end;
2:
begin
if(dfcx='') then
begin
showmessage('请输入您需要查询的客房编号!');
end;
if (dfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 订房信息表.订房编号,订房信息表.顾客姓名,订房信息表.客房编号,客房信息表.客房空闲与否,客房信息表.客房类型,顾客信息表.入住日期,顾客信息表.结算日期,订房信息表.结算金额,订房信息表.备注');
ADOQuery1.SQL.Add('from 订房信息表,客房信息表,顾客信息表where 订房信息表.客房编号=客房信息表.客房编号and 订房信息表.顾客姓名=顾客信息表.顾客姓名and 订房信息表.客房编号=:dfcx');
ADOQuery1.Parameters.parambyname('dfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('dfcx').Value:=dfcx;
ADOQuery1.Open;
end;
3:
begin
if(dfcx='') then
begin
showmessage('请输入您需要查询的入住日期!');
end;
if (dfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 订房信息表.订房编号,订房信息表.顾客姓名,订房信息表.客房编号,客房信息表.客房空闲与否,客房信息表.客房类型,顾客信息表.入住日期,顾客信息表.结算日期,订房信息表.结算金额,订房信息表.备注');
ADOQuery1.SQL.Add('from 订房信息表,客房信息表,顾客信息表where 订房信息表.客房编号=客房信息表.客房编号and 订房信息表.顾客姓名=顾客信息表.顾客姓名and 顾客信息表.入住日期=:dfcx');
ADOQuery1.Parameters.parambyname('dfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('dfcx').Value:=dfcx;
ADOQuery1.Open;
end;
4:
begin
if(dfcx='') then
begin
showmessage('请输入您需要查询的结算日期!');
end;
if (dfcx<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 订房信息表.订房编号,订房信息表.顾客姓名,订房信息表.客房编号,客房信息表.客房空闲与否,客房信息表.客房类型,顾客信息表.入住日期,顾客信息表.结算日期,订房信息表.结算金额,订房信息表.备注'); //注意:在Delphi中,每一条ADOQuery1.SQL.Add必须要写在同一行!
ADOQuery1.SQL.Add('from 订房信息表,客房信息表,顾客信息表where 订房信息表.客房编号=客房信息表.客房编号and 订房信息表.顾客姓名=顾客信息表.顾客姓名and 顾客信息表.结算日期=:dfcx');
ADOQuery1.Parameters.parambyname('dfcx').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('dfcx').Value:=dfcx;
ADOQuery1.Open;
end;
5:
begin
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select 订房信息表.订房编号,订房信息表.顾客姓名,订房信息表.客房编号,客房信息表.客房空闲与否,客房信息表.客房类型,顾客信息表.入住日期,顾客信息表.结算日期,订房信息表.结算金额,订房信息表.备注');
ADOQuery1.SQL.Add('from 订房信息表,客房信息表,顾客信息表where 订房信息表.客房编号=客房信息表.客房编号and 订房信息表.顾客姓名=顾客信息表.顾客姓名');
ADOQuery1.Open;
end;
end;
end;
procedure TForm6.Edit1Click(Sender: TObject);
begin
edit1.Text:='';
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
combobox1.Text:='';
ADOQuery1.Close;
Form6.Close;
end;
end.
七、
implementation
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
begin
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 管理者信息表');
ADOQuery1.Open;
end;
procedure TForm7.Button2Click(Sender: TObject); begin
ADOQuery1.Close;
form7.Close;
end;
end.
八、
procedure TForm8.Button1Click(Sender: TObject);
begin
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 员工信息表'); ADOQuery1.Open;
end;
procedure TForm8.Button2Click(Sender: TObject); begin
ADOQuery1.Close;
form8.Close;
end;
end.
九、
procedure TForm9.Button1Click(Sender: TObject); begin
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 员工信息表'); ADOQuery1.Open;
end;
procedure TForm9.Button2Click(Sender: TObject); begin
ADOQuery1.Close;
form9.Close;
end;
end.
十、
procedure TForm10.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
form10.Close;
end;
procedure TForm10.Button2Click(Sender: TObject);
var name:string; key:string;
begin
name:=edit2.Text;
key:=edit1.Text;
edit1.Text:='';
edit2.Text:='';
if(name<>'')and(key<>'') then
//ADOQuery1.Open;
ADOQuery1.Close ;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.Add('select * from 员工信息表WHERE 密码=:key and 登录账号=:name');
ADOQuery1.Parameters.parambyname('name').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('name').Value:=name;
ADOQuery1.Parameters.parambyname('key').datatype:=ftstring;
ADOQuery1.Parameters.ParamByName('key').Value:=key;
ADOQuery1.Open;
end;
end.。