版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文档供参考,可复制、编制,期待您的好评与关注! 本科毕业论文进销存管理系统权限管理模块的设计44 / 49Design and Simulation of IIR Digital Filter LUO XiaoSupervisor: LIU Peng-junMarch 2008摘 要本篇论文主要是对进销存管理系统,库存管理和权限管理模块的设计。使用SQL Server,C+Builder等程序对公司的系统管理的变革,让系统模块的使用者更方便,更效率的管理进销存系统。关键词:进销存管理系统;库存管理;权限管理模块AbstractKeywords:MIS;C+ Builder6.0;informa
2、tion system目 录1 前言12 系统的需求分析22.1 系统总体分析22.2 系统的基本功能模块22.3 系统流程图53 系统设计63.1 系统配置63.2 数据库设计63.2.1 系统数据表及其用途63.2.2 创建数据库及数据表63.3 系统模块的具体设计83.3.1 系统主窗体的设计83.3.2 访问数据模块的创建83.3.3 登录功能的完成93.4 库存查询与权限管理模块设计164 数据库的安全性及管理234.1 数据库的安全性234.2 备份和恢复数据库314.2.1 数据库的备份314.2.2 数据库的恢复325 源代码34参 考 文 献41致 谢421 前言随着我国社会
3、主义市场经济体制的确立和发展,商业流通领域进入了一个空前的发展阶段,面临商界的激烈竞争,只有在多变的商品和顾客中挖掘并掌握市场需求,即淘汰“卖不出去的商品”,购进“卖得快、利润高的商品”的经营者才会获利,企业也才能在竞争中生存和发展,如果能够选择一个好的管理系统,把大量繁杂的、看似毫无关系的数据,有机的结合起来,形象的反映出市场的供求关系,就能够为得出正确的决策做出事半功倍的效果。在过去,销售业的操作一般都靠人工操作,如靠人工登记卡片、填写表格资料,然后根据不同的分类入帐,销售额的日结算和每月的盘点都需花费大量的人力和物力来完成。即使前几年,有些商家开始使用电脑管理,但也只是进行一些简单的数据
4、计算的操作。这是一项极其繁琐的工作。通过人手工计算不仅容易出错,而且不能够及时把数据之间的关系形象化表现出来,也就不能够进一步掌握市场的最新动态。而通过本系统基本可解决以上问题,并且能够方便、灵活地对数据库的资料进行查询、统计、打印等操作,所有这些对数据库进行的操作都受到管理级别的限制,确保数据的安全性。另外,本系统从实用性方面考虑,在联机交换数据时,尽量使数据在必要时才进行传递,提高运行速度。数据库技术是一门历史弥坚的学科,不像其它的计算机技术会随着时间的推移而变得越来越没有声息。考虑其原因,则是因为信息的爆炸对数据库技术的要求只增不减。在互联网日益发展、壮大的背景下,在因特网热潮不减的情况
5、下,如何让原来在单机中使用的数据库可供多机使用,也成了必然的趋势。企业要在竞争中求得生存,就应使自己的产品资料销售、管理等方面科学化,让更多的人知道自己的产品,这样才能争取到更多的销售渠道。在实际应用中,对于商品编码的输入可采用扫描仪的方式,比较准确、方便、快捷,但在本系统中,前台销售操作部分由于缺乏硬件条件,须人手工输入商品编号,但这对系统的模拟并无太大的影响。在实际的仓库进销存管理中,普遍使用多机操作共享同一个数据库的管理系统。本论文将详细介绍仓库进销存的模拟管理系统的开发环境、需求分析、设计思想及其强大的功能,使用户对本系统有一个清晰、完整的了解,详细介绍了个别模块的实现步骤,并附有参考
6、文献。2 系统的需求分析2.1 系统总体分析我们现已确定系统开发的目标,系统需求规格。确定软件系统的总体结构,给出系统中各个组成模块见的联系。划分功能模块,将软件功能需求分配给所有单元模块。下一步工作就是在上述结果基础上,考虑怎样实现这个软件系统。(1)系统的功能分析经过我们市场调研、可行性和系统分析,我组现已总结出仓库管理系统的数据流程.该系统完成后将具备如下功能:(a) 仓库各种信息的输入,包括入库,出库,还原,需求信息的输入等(b) 仓库管理的各种信息查询,修改和维护(c) 设备采购报表的生成在库存管理中加入最高储备和最低储备字段(d) 对仓库的物质设备实现监控和报警 (e) 企业各个部
7、门的物质需求管理,操作日志的管理(f) 仓库管理系统的使用帮助本系统的以上功能会更适合仓库管理的发展情况,将会给仓库管理带来一种更为科学的服务系统,是仓库管理自动化的一面新窗口。也将会是仓库管理员的好帮手。(2)系统数据分析与描述(a)设备信息情况描述包括设备的编号、名称、入库时间、供应商、采购员、价格等。(b)工作用户权利描述密码、权限级别(数值)。(c)一般用户权利描述权限级别(数值)经过对以上数据的分析与描述,现在可以知道设备的各种信息关系。然后更好的实现系统.。(3)实现本系统功能的方法首先要制作一个仓库设备信息的存储库,以用来存储设备信息。作为主题工作后台。接下来将要再建立一个主表,
8、也就是设备信息表,作为前台功能展开,以完成各方面操作。最后新系统要在友好的界面中,达到用预期,并要在良好的可靠性、高速的效率、易使用的目的在安全性和稳定性前提下,给用户们提供各种方便的操作。2.2 系统的基本功能模块一个进销存管理系统应包含以下几大功能模块。进销存管理系统资料管理采购管理销售管理库存管理系统管理图1 进销存管理系统结构图(1)资料管理模块企业经营的基础资料是一个企业最基本和最重要的信息。其中包括商品资料,供货商资料和客户资料,脱离了基础资料,进销存系统将无法运行。资料管理用于维护这些基础资料,它包含的功能字模快为:资料管理商品资料维护供货商资料维护客户资料维护图2 资料管理模块
9、结构图其中商品资料维护用于维护企业经营商品的基本信息,内容包括货号,条形码,品名,拼音编码,规格,单位,产地,类别,销售价1,销售价2,最底售价等。其中拼音编码是商品名称的拼音简称,目的是在程序中可以通过拼音码方便的查到所需要的产品。供货商资料维护用于维护企业供货商的基本信息,内容包括供货商号,拼音编码,简称,名称,地址,邮编,电话,传真,类型,库房地址,库房电话,业务员,业务部门等。客户资料维护用于维护企业客户的基本信息,内容包括客户编号,拼音编码,简称,名称,联系人,地址,电话,传真,开户行,开户行邮编,银行帐号,业务员,业务部门,授信额度等。(2)采购管理模块采购管理用于管理企业的采购业
10、务,我们所做的系统中它主要有进货单功能子模块。进货单用于录入企业的进货单,它分为主从两张表,主表进货单内容包括编号,供货商号,进货日期,业务员,制单人,验收员,保管员,税额,订单号等,从表进货单明细内容包括编号,进货单号,货号,进货数量,进价,税价合计,不含税价,税额,仓库,货物质量等。根据企业的规模和管理方法,可以直接做进货单而不用做采购订单,但对于较大规模的企业,一般采购部门和库房部门是分开的,由采购部门填写采购订单,货物运输到库房后由库房验收人员填写进货单。填写进货单后商品的库存才会增加并产生应付款。(3)销售管理模块销售管理用于管理企业的销售业务,我们做的系统它主要包含销售单功能子模块
11、。销售单用于录入企业的销售单,主表销售单内容包括编号,客户编号,销售日期,业务员,制单人,保管员,税价合计,不含税价,税额,订单号等,从表销售单明细内容包括编号,销售单号,货号,销售数量,销售价,税价合计,不含税价,税额,仓库等。(4)库存管理模块库存操作由仓库管理员执行,就是把产品放入仓库或把产品从仓库中取出的操作,用专业术语来描述就是入库和出库。库存操作管理模块可以实现入库管理、出库管理和库存盘店等功能。入库可以分为采购入库、生产库存、退货入库、退料入库等情况。(a) 采购入库指将从供应商处采购的产品入库;(b) 生产入库指将企业自己生产的产品入库;(c) 退货入库指售出的产品退货后,将退
12、货产品入库;(d) 退料入库指用于本企业生产的原材料出库后没有完全使用,退回仓库。入库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和入库时间等信息;(5)出库操作可以分为销售出库、退货出库、用料出库等情况。出库操作需要记录相关的产品信息、仓库信息、客户信息、经办人、涉及金额和出库时间等信息。库存盘点是指对库存产品进行整理,纠正不准确的库存数据。由于人为操作等原因,系统中的库存数据与实际数据之间可能会存在误差。所以没隔一段时间就需要对库存进行盘点,从而保证库存数据的准确,库存查询用于查询企业商品的库存,可以查询总库存和分仓库库存。(6)系统管理模块系统管理是每个系统都必须具备
13、的功能,包括的功能子模块如下:系统管理权限设置数据备份数据恢复图3 系统管理结构图权限设置用于设置各操作员使用系统操作的权限,为了方便设置,一般的应用系统都可以将操作人员分组的,将通用的权限赋予整个组,个别的权限单独赋予个人,这样可以大大减少权限管理的工作量。数据备份用于备份系统数据库。数据恢复用于恢复系统数据库。2.3 系统流程图供货商库存库客户应付款应收款进货单销售单增加库存减少库存产生应收款产生应付款图4 进销存管理系统流程图3 系统设计3.1 系统配置系统的使用环境:硬件环境:PentiumIV或同档次以上微机;32MB以上内存或更高;4.2G以上硬盘;打印机一台。软件环境:中文WIN
14、DOWS/2000操作系统。3.2 数据库设计3.2.1 系统数据表及其用途 表1 系统数据表数据表名称数据表用途用户清单保存系统使用者的信息权限清单保存系统使用者的权限信息商品清单保存企业经营商品的资料信息供货商清单保存企业供货商的信息客户清单保存企业客户的资料信息仓库清单保存企业库房的分类信息业务员清单保存企业的业务员信息进货单进货单主表进货单明细进货单从表进货单历史保存进货单历史进货单明细历史保存进货单明细历史销售单销售单主表销售单明细销售单从表销售单历史保存销售单历史销售单明细历史保存销售单明细历史库存单保存企业商品库存的数量、金额等应付款、应收款保存企业应付款明细、应收款明细3.2.
15、2 创建数据库及数据表数据库的创建比较简单。打开SQL Server 2000企业管理器,新建一个数据库,名称为jxc。表的创建有两种方式:第一个是利用SQL Server 2000的查询分析器打开建库的脚本,直接运行它,系统的相关元素就可以自动建立起来。第二个是进入新建的数据库jxc,利用设计表这一功能来创建表。数据表的创建如下:CREAT TABLE dbo.商品清单(货号 char (14) NOT NULL Primary Key,条码 char (14) NULL,品名 varchar (80) NULL,规格 varchar (40) NULL,单位 char (6) NOT NU
16、LL,产地 varchar (50) NULL,类别 char (20) NULL,进货价 decimal (9) NULL default(0),销售价1 decimal (9) NULL default(0),销售价2 decimal (9) NULL default(0),)CREAT TABLE dbo.库存库(货号 char (14) NOT NULL ,仓库 varchar (20) NOT NULL ,库存数量 decial (28,6) NOT NULL , 库存金额 decial (28,6) NOT NULL ,库存单价 decial (28,6) NOT NULL ,最新
17、进价 decial (28,6) NOT NULL ,)CREAT TABLE dbo.权限清单 (权限序号 int IDENTIYY (1,1) NOT NULL ,用户编号 char (6) NULL,部 门 char (20) NULL,权限名称 char (6) NOT NULL)3.3 系统模块的具体设计 3.3.1 系统主窗体的设计利用系统默认生成的窗体作为主窗体,并为其添加一个主菜单(MainMenu)控件,布局如图:图5 进销存管理系统主界面3.3.2 访问数据模块的创建因为各个窗体均需要对数据库进行访问,我们可以把与数据库进行连接的控件放置到一个数据访问模块中,这样所有的窗体
18、都可以共享来访问数据库。(1)在ODBC中添加一个驱动程序为SQL Server的系统DNS数据源指向前面创的jxc数据库,名称为“jxclink”。(2)在C+ Bilder的BDE Administrator工具中新建一个BDE数据源,名称为“jxclink”,Type属性为“SQL Server”,ODBC DNS属性为”jxclink”。(3)在C+ Builder中选择File/New/Data Module菜单命令,生成一个数据模块并保存为“db.cpp”文件。(4)为数据模块添加一个Database控件,控件的属性设置如下所示,这样在其他窗体中就可以直接使用Query和Table
19、控件来访问数据了。表2 数据库表控件名属性取值Database1NameDatabase1Database1AliasNamejxclinkDatabase1DatabaseNamedbDatabase1LoginPromptfalse3.3.3 登录功能的完成用户在输入“用户号”和“密码”之后,系统对用户的输入进行确认,并记录登录用户的姓名和用户号,供系统使用(权限管理、制单人指定等)。设计步骤如下:登录界面如图6: 图6 管理员登录模块界面(1)选择NewForm菜单命令,新建一个窗体,将其Name属性改为“fmLogin”,并为其添加下列控件:为fmMain和fmLogin两个窗体(Ma
20、in.h和Login.h)分别添加如下两个公有变量。Public: /User declarationsAnsiString m_szUserCode;/此变量两个窗体都有AnsiString m_szUserName;/此变量两个窗体都有AnsiString m_sz PassWord;/此变量为fmLogin窗体特有为fmMain窗体的Create事件的响应函数中添加如下代码,完成显示登录窗体的功能,需要注意的是在fmMain窗体的cpp文件中要有“Login.h”的包含语句。Void _fastcall TfmMain:FormCreat(Tobject *Sender)TfmLogin
21、 *pForm=new TfmLogin(Application);PForm->ShowModal();If(pForm->m_szUserCode.IsEmpty()/取消了,退出程序Application->terminate();elsem_szUserCode=pForm->m_szUserCode;m_szUserName=pForm->m_szUserName;delete pForm;(2)将jxc.cpp文件中的下面两行代码的顺序交换,否则运行会出现错误,我们必须首先建立数据访问模块才能使用它。Application->CreateForm
22、(_classid(TfmMain,&fmMain);Application->CreateForm(_classid(TdataModule1),&DataModule1);(3)为fmLogin窗体添加如下事件响应函数代码,完成密码认证功能。void _fastcall TfmLogin:edUserCodeExit(TObject *Sender)if(edUserCode->Text.IsEmpty()return;TQuery* pQuery = new TQuery(NULL);pQuery->DatabaseName = "db&quo
23、t;AnsiString sql;sql = "select 姓名,密码 from 用户清单 where 用户编号 = '" + edUserCode->Text + "'"pQuery->SQL->Add(sql);pQuery->Open();TField* pField = pQuery->FieldByName("姓名");if(pField->IsNull)/ 不存在该用户edUserCode->Text = ""edUserName->Te
24、xt = ""edPassword->Text = ""edUserCode->SetFocus();else/ 显示用户名edUserName->Text = pField->AsString;m_szUserCode = edUserCode->Text;m_szUserName = pField->AsString;m_szPassword = pQuery->FieldByName("密码")->AsString;/ 释放空间delete pQuery;/-void _fastc
25、all TfmLogin:edUserCodeKeyPress(TObject *Sender, char &Key)if(Key = 13)edPassword->SetFocus();/-void _fastcall TfmLogin:btLoginClick(TObject *Sender)if(!m_szUserName.IsEmpty() && m_szPassword = edPassword->Text)/ 密码正确this->Close();else / 密码错误edPassword->Text = ""edP
26、assword->SetFocus();/-void _fastcall TfmLogin:btExitClick(TObject *Sender)m_szUserCode = ""m_szUserName = ""m_szPassword = ""this->Close();/-void _fastcall TfmLogin:edPasswordKeyPress(TObject *Sender, char &Key)if(Key = 13)btLoginClick(NULL);至此,我已经完成了用户登录的功能。系
27、统首先要求用户输入用户号和密码,并与用户清单中的信息进行对比,认证通过后在可以进入系统。Login.h文件原代码如下:#ifndef loginH#define loginH/-#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>#include <DB.hpp>#include <DBTables.hpp>/-class TfmLogin : public TForm_published:/ IDE
28、-managed ComponentsTLabel *Label1;TLabel *Label2;TLabel *Label3;TEdit *edUserCode;TEdit *edUserName;TEdit *edPassword;TButton *btLogin;TButton *btExit;TLabel *Label4;void _fastcall edUserCodeExit(TObject *Sender);void _fastcall edUserCodeKeyPress(TObject *Sender, char &Key);void _fastcall btLogi
29、nClick(TObject *Sender);void _fastcall btExitClick(TObject *Sender);void _fastcall edPasswordKeyPress(TObject *Sender, char &Key);private:/ User declarationspublic:/ User declarations_fastcall TfmLogin(TComponent* Owner);AnsiString m_szUserCode;AnsiString m_szUserName;AnsiString m_szPassword;/-e
30、xtern PACKAGE TfmLogin *fmLogin;/-#endifLogin.cpp文件原代码如下:#include <vcl.h>#pragma hdrstop#include "login.h"/-#pragma package(smart_init)#pragma resource "*.dfm"TfmLogin *fmLogin;/-_fastcall TfmLogin:TfmLogin(TComponent* Owner): TForm(Owner)/-void _fastcall TfmLogin:edUserCod
31、eExit(TObject *Sender)if(edUserCode->Text.IsEmpty()return;TQuery* pQuery = new TQuery(NULL);pQuery->DatabaseName = "db"AnsiString sql;sql = "select 姓名,密码 from 用户清单 where 用户编号 = '" + edUserCode->Text + "'"pQuery->SQL->Add(sql);pQuery->Open();TFi
32、eld* pField = pQuery->FieldByName("姓名");if(pField->IsNull)/ 不存在该用户edUserCode->Text = ""edUserName->Text = ""edPassword->Text = ""edUserCode->SetFocus();else/ 显示用户名edUserName->Text = pField->AsString;m_szUserCode = edUserCode->Text;m_
33、szUserName = pField->AsString;m_szPassword = pQuery->FieldByName("密码")->AsString;/ 释放空间delete pQuery;/-void _fastcall TfmLogin:edUserCodeKeyPress(TObject *Sender, char &Key)if(Key = 13)edPassword->SetFocus();/-void _fastcall TfmLogin:btLoginClick(TObject *Sender)if(!m_szUse
34、rName.IsEmpty() && m_szPassword = edPassword->Text)/密码正确this->Close();else / 密码错误edPassword->Text = ""edPassword->SetFocus();/-void _fastcall TfmLogin:btExitClick(TObject *Sender)m_szUserCode = ""m_szUserName = ""m_szPassword = ""this->C
35、lose();/-void_fastcall TfmLogin:edPasswordKeyPress(TObject *Sender, char &Key)if(Key = 13)btLoginClick(NULL);3.4 库存查询与权限管理模块设计库存查询功能用于查询商品的库存信息,只能查询,不可以修改。(1)选择New/Form菜单命令,新建一个窗体,将其Name属性改为“fmStoreQuery”,并为其添加如图所示的控件。选择Project/Options菜单命令,将fmStoreQuery窗体从自动创建的窗体列表中删除。(2)窗体中的DBGrid控件,Query控件和Dat
36、eSource控件的属性设置和选择仓库窗体一致.Query控件的SQL属性设置为“select a.货号,b.品名,拼音编码,单位,仓库,库存数量,库存单价,库存金额from库存库as a,商品清单as b where a.货号=b.货号”。图7 库存查询及权限管理模块图(3)为窗体添加如下查询代码,完成库存查询功能。Void_fastcall TfmstoreQuery:FormCreate(Tobject *Sender) /初始化仓库下拉选项 TQuery* pQuery=new Tquery(NULL); PQuery->DatebaseName=”db”; PQuery->
37、;SQL->Clear(); PQuery->SQL->Add(“select仓库名from仓库清单“); PQuery->Open(); While(!pQuery->Eof) cbostore->Items->Add(pQuery->FieldByName(“仓库名“)->AsString);pQuery->Next(); pQuery->Close();delete pQuery;cboStore->Text = “ ”;edGoodcode->TextedGoodPY->Text = "&qu
38、ot;/-void _fastcall TfmStoreQuery:btQueryClick(TObject *Sender) Query1->Filtered = false; / 设置Query控件的filter属性可以起到查询条件的作用 AnsiString szCon; if(edGoodCode->Text.Length()>0) szCon = "货号='" + edGoodCode->Text + "'" if(edGoodPY->Text.Length()>0) if(szCon.Len
39、gth()>0 ) szCon += " and 拼音编码 like '%" + edGoodPY->Text + "%'" else szCon = "拼音编码 like '%" + edGoodPY->Text + "%'" if(cboStore->Text.Length()>0) if(szCon.Length()>0 ) szCon += " and 仓库 = '" + cboStore->Text +
40、"'" else szCon = "仓库 = '" + cboStore->Text + "'" Query1->Filter = szCon; Query1->Filtered = true;权限管理是每一个应用系统必须具备的功能,以下为完成权限管理功能的过程。(1)选择New/Form菜单命令,新建一个窗体,将其Name属性该为“fmRightManage”,并为其添加如图所示的控件。选择Project/Options菜单命令,将fmRightManage窗体从自动创建的窗体列表中删除。图
41、8 权限管理模块界面图(2)各控件属性设置如表所示:表3 权限管理数据信息表控件类型对象名属性取值(说明)QueryQuery1DatabaseNamedbTableTable1DatabaseNamedbTableTable1TableName用户清单TableTable1ActivetrueDataSourceDataSource1DataSetTable1DataSourceDataSource1AutoEditfalseDBGridDBGrid1DataSourceDataSource1DBGridDBGrid1OptionsdgEditingfalseDBGridDBGrid1Opt
42、ionsdgRowSelecttrueCheckListBoxCheckListBox1Items权限管理窗体(3)完成窗体的设计后,为窗体添加如下代码,实现设置权限的功能。void _fastcall TfmRightManage:FormClose(TObject *Sender, TCloseAction &Action) / 删除窗体并回收空间 Action = caFree;/-void _fastcall TfmRightManage:Table1AfterScroll(TDataSet *DataSet) / 先去除所有的权限标志 for(int i=0; i<Ch
43、eckListBox1->Items->Count; i+) CheckListBox1->Checkedi = false; / 根据选择的用户设置权限标志 Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("select 权限名称 from 权限清单 where 用户编号='" + Table1->FieldByName("用户编号")->AsString + "'"); Query1->
44、Open(); while(!Query1->Eof) AnsiString szFunName = Query1->FieldByName("权限名称")->AsString; CheckListBox1->CheckedCheckListBox1->Items->IndexOf(szFunName) = true; Query1->Next(); /-/ 选择或去除功能权限,修改数据库权限清单表void _fastcall TfmRightManage:CheckListBox1ClickCheck(TObject *Sende
45、r) / 没有选择用户,退出函数 if(!Table1->FieldByName("用户编号") return; / 循环判断 Query1->Close(); Query1->SQL->Clear(); AnsiString sql; / 不管没有选中,先全部删除,再根据选择的情况插入 sql = "delete from 权限清单 where 用户编号='" ; sql += Table1->FieldByName("用户编号")->AsString + "'"
46、; Query1->SQL->Add(sql); for(int i=0; i<CheckListBox1->Items->Count; i+) if(CheckListBox1->Checkedi) / 选中权限,权限清单中插入一条 sql = "insert into 权限清单(用户编号,权限名称) values('" ; sql += Table1->FieldByName("用户编号")->AsString + "','" sql += CheckList
47、Box1->Items->Stringsi + "')" Query1->SQL->Add(sql); Query1->ExecSQL(); Query1->Close();到此我们完成了权限管理的功能,在主窗体中添加权限管理菜单的响应函数即可运行程序查看结果,如图所示。选择一个用户可以对其进行权限设置,赋予的权限在功能模块左边打勾即可。上面我们只是完成了权限设置的功能,程序中还要控制用户登录系统后将该用户不具备的功能菜单变成灰色的不可操作菜单,从而控制用户的操作权限。(4)在fmMain主窗体的Create事件响应函数中添加如下
48、代码,屏蔽用户不可操作的功能菜单。void _fastcall TfmMain:FormCreate(TObject *Sender) TfmLogin *pForm = new TfmLogin(Application); pForm->ShowModal(); if(pForm->m_szUserCode.IsEmpty() / 取消了,退出程序 Application->Terminate(); else m_szUserCode = pForm->m_szUserCode; m_szUserName = pForm->m_szUserName; Statu
49、sBar1->Panels->Items1->Text = m_szUserName; delete pForm; / 设置功能菜单的状态,屏蔽用户不可操作的功能 / 如果是系统管理员登录,则不设置 if(m_szUserCode = "1") return; TQuery* pQuery = new TQuery(NULL); pQuery->DatabaseName = "db" pQuery->SQL->Add("select 权限名称 from 权限清单 where 用户编号='"
50、+ m_szUserCode + "'"); pQuery->Open(); TStringList* plst = new TStringList(); while(!pQuery->Eof) plst->Add(pQuery->FieldByName("权限名称")->AsString); pQuery->Next(); for(int j=0; j<MainMenu1->Items->Count; j+) TMenuItem* pItem = MainMenu1->Items-&g
51、t;Itemsj; for(int i=0; i<pItem->Count; i+) TMenuItem* pSubItem = pItem->Itemsi; if(pSubItem->Count = 0 && plst->IndexOf(pSubItem->Caption)<=0) pSubItem->Enabled = false; delete pQuery; delete plst;自此我们基本完成了这个制作,我们可以运行程序进行各种操作,检查程序的稳定性,也可以尝试增加其他功能。我们可以使用其他用户来登录,比如使用一同学
52、来登录,按照前面赋予该同学的权限,登录后系统如图所示,该同学没有操作权限的功能被屏蔽了。4 数据库的安全性及管理4.1 数据库的安全性安全性管理是数据库管理系统的一个重要组成部分。安全性就是确保只有授权的用户才能使用数据库中的数据和执行相应的操作,它包括两方面的内容,一是用户能否登录系统和如何登录的管理,二是用户能否使用数据库中的对象和执行相应的操作管理。Microsoft SQL Server 2000系统提供了一套完整的安全机制,这些机制包括选择认证模式和认证进程.登录账户管理.数据库用户账户管理.角色管理.许可管理等内容。用户在使用Microsoft SQL Server系统前,必须通过
53、系统的认证进程。认证模式就是设置系统的认证进程的方式。认证进程就是指当用户访问数据库时,系统对用户的账户和口令的确认过程。认证内容包括确认用户的账户是否有效,是否能访问系统,能访问系统中的哪些数据等。认证模式就是指系统选择何种认证进程确认用户是否为合法的方式。用户必须使用一个Login账户,才能连接到SOL Sever系统中。SOL Sever系统通过Windows认证进程来确认用户的身份。使用Windows认证进程时,由Windows系统确认用户的Login账户,这些Windows系统的Login账户可以直接访问SOL Sever系统的数据,不必提供SOL Sever的Login账户和口令。在SOL Sever系统中,把网络协议Named pipes和TCP/IP称为信任协议。如果在一个网络环境中,连接客户机和服务器的所有通讯协议都是信任连接协议,那么应该采用Windows认证模式。在Win
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度个人与公司间代收代付业务合同范本3篇
- 2025年度年度城市绿化劳务承包综合服务版合同3篇
- 二零二五年度公司施工队高速公路施工合作协议3篇
- 2025年度航空航天实验室航天器研发与制造合同3篇
- 二零二五年度冷库租赁及冷链物流运输保障合同
- 二零二五年度冷链运输及冷链设备维修服务合同
- 二零二五年度航空航天材料研发全新期权合同3篇
- 2025年度智能门锁用户购买合同3篇
- 二零二五年度金融机构对赌协议合同-信贷业务与风险控制3篇
- 2025年度人工智能公司合伙人股权分配与战略规划合同3篇
- 2024年03月乌鲁木齐海关所属事业单位2024年面向社会公开招考14名工作人员笔试参考题库附带答案详解
- 疾控中心慢病科工作总结
- 锚索张拉伸长量计算
- 汽车保险与理赔教案
- 2024年度医院皮肤科医务人员绩效述职统计报告课件
- 岗位资质管理流程培训方案
- 医院消防培训方案
- 【人教部编版语文六年级上册】选择题专项练习复习(100道题后附答案)
- 腹膜透析建立课件
- 用户侧储能商业模式及投资收益分析
- 广东省广州市越秀区2022-2023学年八年级上学期期末物理试卷
评论
0/150
提交评论