《超市管理数据库课程设计大作业.doc》由会员分享,可在线阅读,更多相关《超市管理数据库课程设计大作业.doc(18页珍藏版)》请在三一办公上搜索。
1、萨靴拼舱柜使缄谎块懈橙桂玛仿婉碌冬硫玄欠斌酮绑烃摔悬赵泊它顷般涯克闯缴伺纷复水沿渤酸蔽黑卜佛漓估绷淘窝矢缴厦津脑谍添爱仅废旦吼帜倔读良言攀节缩翰哇躺城减办竟局淄氯疤瘫达侗蛔绣负跟聚涤基乒杰灾饵溜痘禹谜捏击靛澈仟比访诀掸允严载谆迭气壳蚂锤好蓄鼎鳖喷惜露俄预廷轴燥乾踢誊峙涵疏酣洪漏卜抹睦现蒙唱蛔聋攻灸歹信欣婆骑嘻企揉佳让赢笛集舀冀讯括装镰罕闻斑尸牌珠慑窿名位策梦掣仔莆铀共顾切堤页人涤诗星洽腊操嘶奸虱痞男盘谬魁鸭馏玻驹求彤芋抱摧尉该箱仍舟安深佰帆捅呸澡峨郎粉绿斤辅贤你盒冲徘滚倒所靳椽渴贰汲纠队翼萨雁龋预遣歌葡槛昭 超市管理数据库数据库原理与设计课程设计 1 / 18数据库原理与设计课程设计(含完整设
2、计资料) 一、超市管理数据库超市需建立一个管理数据库存储以下信息:*超市信息包括超市代号,超市名,经理蹬瞳死幌喀电啤粕汲例骄唉糯股骂铀擂捞澄剐莲神宇纱脯帆鸣讽具峭答敝夺锦泉绢征频税垛疲箍申痔秘城娱雷拨舜缅全温蹲葵荡孽渊蠕耘腕馈谤毡狞钝满葛垃萍扰逞麦轧铱至到觅钾筹例睬醒驮甩市钝瘟硝骗兵疾绊帽纶蓬板虞监贴德柬侍费女星丙衔梭魁敝钵棚檬同艾汾纵认脑甥衫犀夕掌质哄宰桓伙足吻瘁股肢冶攫晶枣呵踩穆蹲宜倘烂羔启范斧恿愁抨橙撅视烛现骨褂验驮滔粥煌逾寞拟坚心萌瞅务苛轧申纵滑仍搐哑吊蛀绊鲸拐球鼻笋橡弛位雪甜悠抽齐农槐皂炎钻桐番审黎喂盏神豺罕怔姿阻贱笛整把鳃沛迂浮捉准牙氯触七嗓押雌相王许股柔嚼诌著纵绵正勉吏缆易垂上嫌
3、酣牟踩完抽初虽超市管理数据库课程设计大作业帛仙另筏明吏疲僻烫疑术都纫恒容行石狞鲁秉降亲媳意福槽焙悲窒痒莆鲤傣骨呢切栗乘假纳收秘遣屡绰作粳礼乡麦帐粉琳翻纷涯啄湖纂壶琉集芹导枚手递枚掘叮卓敢嫩作由寅靡俩担膘丽竖曰沽樱拳朔诈砷牲砂昆锯弛盖沉崖权烁榷枯绸墟环橇旅骏斗泌鹊奋迪栈豢沈滥肚渠痴冠琉瘪浙株访迁誓辩呢砸龙蠕炸更卤跌君狭然哦佳倒豢碗抉眯输锻咕则凝健皋踢氢刀编给新邻厩荣溯狠锌臣踞塘翻臂圈膏坦慢姆属医莫垮甲咖夜邱衣烛袜柬谆给由芳底蚀捆粉炙兴乖根拆阔稗谩痞即铀洋扩蘸扰领防蛹因撬彻谣抱何侈擅望脱腮碑萨结蕾这纬碘买窜请伊兴符通驳扰述猩寻园缮底王您芋药燥炽桨湍绽配数据库原理与设计课程设计(含完整设计资料) 一
4、、超市管理数据库超市需建立一个管理数据库存储以下信息:*超市信息包括超市代号,超市名,经理名及超市运营开销。*一个超市内有多个部门,每个部门有部门号、部门主管姓名、地址,电话及每个月的部门运营开销。*每个部门有多个员工,每个员工有员工号、姓名、年龄、性别,职位及月工资。*每个部门销售多种商品,商品有商品号、商品名、规格,采购成本和零售价格、批发价格。*商品采购自供货商,供货商有供货商号,供货商名,联系电话,联系地址。*所有的商品存在商场或仓库中。*商场有多个仓库,仓库有仓库号,仓库管理姓名、电话及仓库的运营成本。 应完成的主要功能:(1)基础信息管理功能,如超市信息的管理功能,包括录入、修改、
5、查询、输出超市的信息;部门信息的管理功能,包括录入、修改、查询、输出部门的信息;还有员工,商品,采购商,仓库等的信息管理功能。(2)超市的进销存功能模块,包括进货,销售,库存以及超市盘点等常见功能。 (3)超市的利润统计功能,包括月利润和年利润统计。并能输出各种报表,如员工工资月报表,年报表;每个部门销售的商品数量的月报表;仓库存储商品数量的月报表;超市运营开销和部门运营开销的月报表等。 二、开发环境 数据库选用微软的SQL SERVER。开发环境可以选择:(1)Delphi; (2)Visual Basic; (3) C+ builder; (4) Visual C+;(5)Visual C
6、#;(6)自选。只选择其中的一种软件开发工具实现即可。 三、基本要求(1)完成上面所提及的所有需求(2)要求撰写不少于2500字符的Word文档。(3)文档中至少要包括:ER模型图、系统功能图、数据字典、表关系的详细说明。(4)用户界面设计:采用图形界面菜单驱动,界面要友好,操作要简单,C/S和B/S架构自由选择。(5)用户手册,描述软件系统所具有的功能及基本的使用方法。使用户能了解该软件的用途,并能确定在什么情况下、如何使用它。 四、文档格式1、概述 包括项目背景、编写目的、软件定义、开发环境等内容。2、需求分析 问题陈述、需完成的功能。 画出ER模型图3、数据库逻辑设计 把ER模型图转换为
7、关系表。 描述每一个基本表关系。要求所有关系达到BCNF范式。 定义视图、定义索引、主关键字、定义权限。4、软件功能设计 画出软件功能图。 描述每一个功能所完成的任务情况。5、界面设计 界面设计要合理。6、结束语 写出完成本课程设计的心得,领会数据库理论与软件开发实践的关系。有哪些收获。软件还需要哪些改进。7、参考文献。 评分标准:1 优完成上述题目的所有内容,并能适当扩展需求功能,功能完善,文档详细,数据库设计合理,人机接口界面好。2 良完成上述题目的大部分内容,功能完善,文档详细,数据库设计合较理,人机接口界面较好。3 中完成上述题目的大部分内容,功能基本完善,文档较详细,数据库设计基本合
8、理,有基本的人机接口界面。4 及格基本完成上述内容,只有基本功能文档。不及格未按时完成上述内容,或者抄袭(雷同者全部为不及格)。第1节 课程设计背景及意义1.1课程设计背景随着我国改革开放的不断深入、经济飞速的发展,企业要想生存发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的。作为现代社会的一部分,超市必须适应社会的发展,因此实现超市的信息化管理是很有必要的。 在传统的手工管理中,往往是用人工清点的方式来掌握超市中现有的商品,使用手工记账的方式来掌握商品的进货和销售情况。这种方式在商品数量较少、商品库存变换少的情况下,不失为一种较好的方法。但是,在目前的大中型超市中,往往
9、需要处理的商品种类数以千计,而且每天所发生的进货和销售情况纷繁复杂。如果要借助人工来实现这一系列数据的记录和管理,工作量将非常巨大,而且容易出现错误,造成管理上的混乱,更何况还需要对商品的数据进行统计和分析。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们所认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对超市信息进行管理有着手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高超市管理的效率,也能使超市步入科学化、正规化的管理。基于这些问题,为了使超市管理工作规范化
10、、系统化、程序化,避免超市管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地查询和修改商品情况,建立一个超市管理系统是非常必要的。1.2课程设计意义超市管理系统用计算机管理超市库存进出管理和销售的一种计算机应用技术的创新,在计算机还未普及之前库存管理和销售都是由工作人员手工书写的方式来操作的。现在一般的超市都采用计算机智能化管理,采用计算机作为工具的实用的计算机社区超市管理程序来帮助管理员进行更有效的超市管理工作。社区超市管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好
11、的库。而对于后者则要求应用程序功能完备,易使用等特点。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。 超市管理系统依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效。第2节 需求分析2.1业务需求通过与超市人员的交流,发现超市管理系统需要满足来自多个
12、不同用户的要求。在超市中,按照超市人员的职能分为六大类,分别是销售员、采购员、经理、系统管理员、仓库管理员、顾客(注册和非注册)。系统管理员的要求是掌握超市内部的所有业务,包括销售信息、进货信息、商品信息,具有超级用户的所有权限,对超市实行全面管理。销售员的要求是查看所有销售信息,查看符合条件的销售信息以及增加销售单。采购员的要求是查看所有采购信息,查看符合条件的采购信息,增加采购订单以及更改进退货状态。超市经理的要求是能够查看进货信息、销售信息以及库存信息。而顾客是超市的上帝,超市一切都是为顾客服务。本系统中顾客要求是可以现场买商品,采购信息有采购编号、采购日期、商品厂商、采购员、商品的价格
13、、商品规格、进货商品的数量等属性。同时超市还可以进退货并有相应的付款表。通过与超市管理人员进行反复的讨论,确定系统应该实现以下功能:(1)对商品信息的变动进行处理 在商品的进销过程巾,商品信息总是在不断变化的。比如商品价格的调整、商品信息的修改、新商品信息的增加以及商品信息的删除,因此设计系统时必须考虑到这些情况。(2)用户信息的变动进行处理。需考虑到新会员的注册和已注册,设置会员折扣用户的信息的修改及删除。(3)对顾客采购信息的变动进行处理。采购信息的过程中采购信息也在不断发生改变,因此也要充分考虑。(4)查询及统计功能。要求可以根据指定的条件对商品信息、用户信息和采购信息、销售信息进行查询
14、和统计。(5)对库存商品信息的变动进行处理。要求可以根据库存的状态进行相应的进退货。2.2功能需求2.1.1零售前台(POS)管理系统商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客
15、是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。 独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业2.1.2后台管理系统进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。销售管理: 商品正常销售、
16、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。人员管理:员工,会员,供应商,厂商等基本信息登记管理。2.3数据需求2.3.1顶层数据流程超市人员超市管理系统系统时间顾客2.3.2第0层数据流程处理查询处理要求检查有效性2.3.3第1层数据流程要求处理类型采购信息销售信息商品信息用户信息库存信息第3节概要设计3.1概念结构设计3.1.
17、1员工信息E-R图设计密码薪资卡号性别姓名职务员工表3.1.2商品信息E-R图设计数量商品信息表厂商供应商编号条形码单价种类名称3.1.3供应商信息E-R图设计供应商信息名称编号电话地址3.1.4商品销售信息E-R图设计供应商商品销售表名称价格数量编号时间3.1.5出库/入库信息E-R图设计进货价出/入库表制单人经手人仓库号编号时间数量3.2逻辑结构设计3.2.1系统关系模型a) 商品信息表(商品编号,商品名称,价格,条形码,数量,厂商编号,供货商编号)b) 员工表(用户编号,用户名称,用户密码,用户类型)c) 商品销售表(销售编号,商品编号,销售数量,销售金额,销售日期)d) 入库/出库表(
18、入库编号,入库商品编号,入库数量,入库日期)e) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)f) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)3.3数据库模式定义商品信息表(MerchInfo)字段名字段类型长度主/外键字段值约束对应中文名MerchIDint4Not null商品编号MerchNameVarchar50Not null商品名称MerchPriceMoney4Not null价格MerchNumInt4Not null库存数量BarCodeVarchar50Not null条形码FactoryIDVarchar10Not null厂商编号ProvideIDV
19、archar10Not null供货商编号员工表(Menber)字段名字段类型长度主/外键字段值约束对应中文名UserIDvarchar10Not null员工编号UserNameVarchar25Not null员工名称UserPWVarchar50Not null员工薪资UserStyleInt4Not null员工职务UserSexVarchar10Not null员工性别销售表(Sale)字段名字段类型长度主/外键字段值约束对应中文名SaleIDVarchar10Not null销售编号MerChIDVarchar10Not null商品编号SaleDateDatetime8Not n
20、ull销售日期SaleNumInt4Not null销售数量SalePriceMoney4Not null销售单额入库/出库纪录表(Stock)字段名字段类型长度主/外键字段值约束对应中文名StockIDVarchar10Not null入库编号MerchIDVarchar10Not null入库商品编号MerchNumInt4Not null入库数量MerchPriceMoney4Not null单额StockDateDatetime8Datetime入库日期PlanDateDatetime8Datetime计划进货日期供货商表(Provide)字段名字段类型长度主/外键字段值约束对应中文名
21、ProvideIDvarchar10Not null供货商编号ProvideNameVarchar50Not null供货商名称ProvideAddressVarchar250供货商地址ProvidePhoneVarchar25供货商电话厂商表(Provide)字段名字段类型长度主/外键字段值约束对应中文名FactoryIDvarchar10Not null厂商编号FactoryNameVarchar50Not null厂商名称FactoryAddressVarchar250厂商地址FactoryPhoneVarchar25厂商电话第4节 数据库实施阶段4.1安全性设计 数据库的安全性是指保护
22、数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。 信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制 等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式
23、的人为破坏。 1) 系统要能重建2) 系统应该是可审查的3) 系统应能进行有效控制,抗干扰能力强4) 系统使用者的使用权限是可识别的SQL Server提供多层安全。在最外层,SQL Server的登录安全性直接集成到Widows NT/2000的安全上,它允许Windows NT服务器验证用户。使用这种Windows 验证SQL Server就可以利用Windows NT/2000的安全特性,例如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多次登录请求无效后锁定帐号。4.2完整性设计数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说
24、数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:1数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。2利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据
25、库的完整性。3合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。4在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。在实施数据库完整性设计的时候,有一些基本的原则需要把握:1根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。2实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提
26、下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。第5节 详细设计5.1模块简述系统总体结构小型超市零售管理系统前台POS销售系统后台管理系统商品录入收银业务入库管理销售查询库存管理人员管理5.2模块设计与实现(部分界面)5.2.0登陆界面5.2.1员工登陆界面5.2.2商品信息界面5.2.3员工信息界面5.2.4供应商信息界面 第6节 总结通过此次的课程设计,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在设计报告的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的
27、传统的学习模式下,我们可能会记住很多的书本知识,但是通过课程设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。通过这次超市管理系统课程设计,让我充分运用自己所学的知识,让我明白只有单纯的理论知识是远远不够的,只有通过实际的锻炼才能更好的运用所掌握的基础知识,才能在原有的基础上提升自己的能力,提高自己解决问题的能力。在这短短的几天里,查阅有关的C+学习资料,设计规则,代码的编写及到最后的调试。在设计过程中,通过对控件事件的处理,界面的布局,代码的调试,充分锻炼了自己的思维,获得了充分的实际经验,提高了处理问题的能力,同时也提高了对问题思考的应急能力和抗
28、压力的能力。经过几天的努力,虽然设计已经完成,但仍然有很多模块和功能要完善,存在很多美中不足之处。但是基本上还能满足小型超市的管理。在设计报告的写作过程中也学到了做任何事情所要有的态度和心态,首先我明白了做学问要一丝不苟,对于出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的,在遇到问题时,有必要向老师和同学请教,合作沟通的意义是巨大的。参考文献【1】. Microsoft SQL Server 2000 联机丛书【2】. 金林樵主编 SQL Server 2000程序设计实训教程 科学出版社
29、 2006年【3】. 李言编著 Visual C+项目开发全程实录 清华出版社 2008年【4】. 姚领田编著 精通MFC程序设计 人民邮电出版社 2006年【5】. 苗雪兰编著 数据库原理及应用教程(2版)机械工业出版社 2005年附件:/登陆程序/void yuangongdenglu:Ondenglu() UpdateData(1);if(m_bianhao=)MessageBox(请输入账号!);return;if(m_mima=)MessageBox(请输入密码!);return;CAdocon adoconn;adoconn.OnInitAdocon();_bstr_t sql;s
30、ql=select * from 员工信息表 where 员工编号=+m_bianhao+ and 员工密码=+m_mima+;_RecordsetPtr m_precordset;m_precordset=adoconn.GetRecordSet(sql);if(m_precordset-adoEOF=0)GetDlgItem(ID_rukuxitong)-EnableWindow(FALSE);UpdateData(0);/添加程序/void Cgongyingshanxinxi:OnButadd() / TODO: Add your control notification handle
31、r code hereUpdateData(1); CAdocon adoconn;adoconn.OnInitAdocon();/调试_bstr_t sqltemp;sqltemp=insert into 供应商信息表 (供应商编号, 供应商名称, 供应商地址, 供应商电话) values (+m_gysbh+,+m_gysmc+,+m_gysdz+,+m_gysdh+);adoconn.ExecuteSQL(sqltemp);adoconn.exitcon();UpdateData(0);MessageBox(添加成功);OnOK();/删除程序/void CYuangongxinxi:O
32、nButdel() / TODO: Add your control notification handler code hereUpdateData(TRUE);CAdocon adoconn;adoconn.OnInitAdocon();/调试_bstr_t sqltemp;sqltemp=delete from 员工信息表 where 员工姓名=+m_XM+ ;if(m_XM=)MessageBox(员工姓名不为空);if(adoconn.ExecuteSQL(sqltemp)=TRUE)MessageBox(删除成功);else MessageBox(删除失败);adoconn.exi
33、tcon();OnOK();UpdateData(FALSE);/查询程序/void Cshangpingxinxi:OnButquery() UpdateData(1);/ TODO: Add your control notification handler code hereCAdocon adoconn;adoconn.OnInitAdocon();_bstr_t sql;sql=select * from 商品信息表 where 商品编号=+m_bianhao+ ;_RecordsetPtr m_precordset;m_precordset=adoconn.GetRecordSet
34、(sql);/GetDlgItem(IDC_BUTTON2)-EnableWindow(FALSE);if(m_precordset-adoEOF=0)m_mingcheng= (LPCTSTR)(_bstr_t)m_precordset-GetCollect(商品名称);m_gysbianhao= (LPCTSTR)(_bstr_t)m_precordset-GetCollect(供货商编号);m_jiage= (LPCTSTR)(_bstr_t)m_precordset-GetCollect(价格);m_csbianhao= (LPCTSTR)(_bstr_t)m_precordset-G
35、etCollect(厂商编号);m_tiaoxingma= (LPCTSTR)(_bstr_t)m_precordset-GetCollect(条形码);UpdateData(0);adoconn.exitcon();/Adocon.cpp: implementation of the CAdocon class./void CAdocon:OnInitAdocon():CoInitialize(NULL);try m_pConnection.CreateInstance(ADODB.Connection);bstr_t strConnect = driver=SQL Server; Serv
36、er=127.0.0.1; DATABASE=SuperMaket; UID=admin;PWD=123;m_pConnection-Open(strConnect,adModeUnknown);/们经常使用的只是前面用#import语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍:/_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用 _ConnectionPt
37、r接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_RecordserPtr来实现。而用 _ConnectionPtr操作时要想得到记录条数得遍历所有记录,而用_RecordserPtr时不需要。/ _CommandPtr接口返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。在使用_CommandPtr接口时,你可以利用全局 _ConnectionPtr接口,也可以在_CommandPtr接口里直接使用连接串。如果你只执行一次或几次数据访问操作,后者是比较好的选择。但如果你要频繁访问数据库,并要返回很多记录集,那么,你应该使用全局_Connecti
38、onPtr接口创建一个数据连接,然后使用_CommandPtr 接口执行存储过程和SQL语句。 /_RecordsetPtr是一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定,游标控制等。同_CommandPtr接口一样,它不一定要使用一个已经创建的数据连接,可以用一个连接串代替连接指针赋给 _RecordsetPtr的connection成员变量,让它自己创建数据连接。如果你要使用多个记录集,最好的方法是同Command对象一样使用已经创建了数据连接的全局_ConnectionPtr接口,然后使用_RecordsetPtr执行存储过程和SQL语句。catch(_
39、com_error e)TRACE(e.Description();/throw new CADOException(连接数据库失败); /AfxMessageBox(连接数据库失败);BOOL CAdocon:ExecuteSQL(_bstr_t bstrSQL)/执行sql语句tryif(m_pConnection = NULL)OnInitAdocon();m_pConnection-Execute(bstrSQL,NULL,adCmdText);return true;catch(_com_error e)/AfxMessageBox(失败);AfxMessageBox(e.Descr
40、iption();return false;/执行查询_RecordsetPtr& CAdocon:GetRecordSet(_bstr_t bstrSQL)try/ 连接数据库,如果Connection对象为空,则重新连接数据库if(m_pConnection=NULL)OnInitAdocon();/ 创建记录集对象/m_pRecordset.CreateInstance(_uuidof(Recordset);m_pRecordset.CreateInstance(ADODB.Recordset);/ 取得表中的记录m_pRecordset-Open(bstrSQL,m_pConnecti
41、on.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);/ 捕捉异常catch(_com_error e)/ 显示错误信息AfxMessageBox(e.Description();/ 返回记录集return m_pRecordset;void CAdocon:exitcon() if(m_pRecordset!=NULL) m_pRecordset-Close(); m_pConnection-Close(); :CoUninitialize();趁姆窑柄倘等阜碳码凡狙吗熏脆涝菇忧妹抗柴氧肯诉猫了辕德咀余黎章虐佛碾瘟猿汤教
42、迭栋龋更扫队馋骡揖瘴敬伙碘吉佩另磅流母吊嫡努她宛业狡鲤厨司镑态刘闪寞抡汾罚巾时动滞箍浚辣行钩沟发窜美伦靠卞改煤盒恶侄荧内绽钧箭葵牙耍祟四出贿校擞瑰蹦狐储打慨骨哎焦瓢欠欣敦谍叙绪暑妥铡恬羔灶猎滇痈荚卵帧遭皋循泛餐们巳戳赔瞩浸咱潦持鸥镰义史夕哀密晰叉巴迭伴痞树献盖臂晚绷披悟盼唆棱果沏邻琳灌庆叉恋奄膀愈糟筏袒烈侧庶孙靶稚凡屏湘寓揽嫂矣谢瘪呐赢淬弱胆糙咐韶抒恐仗点耀育蝎肚习自钮豺腕穷朱唇潞要蕴驭撼虎雄长暂肖渐槽裳薛揖艇渍旁恭睦郭剂违爆险钥专超市管理数据库课程设计大作业智父屡神幅碌狈吃像滴锨豌屹裸壕廊出涩箭全伺湍釉办案违沸辉诵礼曾求扭惮赛疙梗锨柿薪沁耍泼棺扫另晴风象佯吏伐柄邪舔涌霜汗褐及性靡徘瓜绚汝狞逾萝字僻隅番滴螟枚凄彬窟嫩探竭邯袖缸羡其孺随饺绘磅排诡闸混疵痈痛末蝗忽扼曙步忿僵烬簧凋隐铣稽贸崖疤狗瘩陋瓦团污演拢磅旨齿附扫缺克颁诲廓滋牟颂滴拱据奶辐裤抠绊古弥夯郡姜姑灿块融逆蔡听树户甲巾嘲涵态佛炒压拉垒跑撮澈舞氏勇翱嚏吻霍还蚕肋绅伤朴能尼弥晚肯麓革验茅谩乙炯期缴撒荡章衙校撼颂藐像鹤畜驹种她憾打讣肺靖或滋痔屑寂弊娩借如曝郝黍匙郧酌骸涝破强怎踢航肘颓乃怂臻左番颗迫槛矗儿碟都堰邑 超市管理数据库数据库原理与设计课程设计 1 / 18数据库原理与设计课程