欢迎来到天天文库
浏览记录
ID:41037392
大小:137.50 KB
页数:11页
时间:2019-08-14
《Visual C++ 数据库编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第9章数据库编程用数据库方式来管理日常生活中大量的信息已变得越来越重要,并出现了许多数据库管理系统,如MicrosoftAccess,MicrosoftSQLServer,OracleServer等,尽管这些系统能进行数据库的管理,但却不能开发出其它功能强大的Windows应用程序。而VisualC++能将关系数据库与面向对象的编程方法有机地结合起来,使得数据库处理和应用程序开发都能很好地兼顾。Visualc++6.0为用户提供了ODBC、DAO及OLEDB三种数据库方式,这三种方式中最简单、最常用的是ODBC。因而我们重点介绍MFC的ODBC编程方法和技巧,并介绍一些用
2、于数据库的ActiveX控件。一、MFC的ODBC过程ODBC(OpenDatabaseConnectivity开放数据库连接),提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定的DBMS相联。用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。用MFCAppwizard(exe)创建一个数据库处理的SDI/MDI程序,只需在向导的第二步中选中“Databaseviewwithoutfilesupport”或“Databaseviewwithfilesupport”即可。当然,在创建之前预先构造好一个数据库,然后进
3、行ODBC的数据源定义。1、设计数据库数据库表与表之间的关系构成了一个数据库。这里我们用MicrosoftAccess创建一个数据库Student.mdb,其中包含两个表xs和zy,如书330页所示。1)开机正常屏幕状态à开始à程序àMicrosoftOfficeàMicrosoftOfficeAccess2003à新建文件à空数据库à文件名处写:studentà点右边的创建à新建à设计视图à确定à出现表,你按书331页上面的表格敲入数据即可:字段名称数据类型(在下面改变)字段大小说明stuid文本6学号name文本8姓名sex文本2性别profcode文本6专业代号2)
4、关闭此表à提问:你是否保存对表1的设计更改?à是à表名写xsà是à便在数据库中建立了表xs3)你双击xs出现设计视图表,之后你将330页的表即下面的数据敲进去学号姓名性别专业代号990101李林男102001990102高山男102001990201王平男109003990202丁玲女1090034)接着你再点本界面上面的新建à设计视图à确定,重复2步)步骤再建表zy字段名称数据类型(在下面改变)字段大小说明profcode文本6专业代号profname文本12专业名称stuyears文本整型学制5)你双击zy出现设计视图表,之后你将331页的中间的表即下面的数据敲进去专
5、业代号专业名称学制102001计算机及应用4102002应用电子技术2102003自动控制4102004通信工程4109003计算机科学42、定义ODBC的数据源桌面左下角à开始à设置à控制面板à管理工具à双击ODBC图标,进入ODBC数据源管理器à按书上331页最下面的(1)开作:3、MFCAppWizard的创建创建一个SDI单文档应用程序,名为:数据库编程-----按书上332页下面的(2)开始作4、浏览记录打开“数据库编程”项目à切换到项目工作区的资源栏à点开Dialogà双击IDD_My_FORM------按书334页(3)往下作----5、改变与m_pSet
6、关联的表在上面过程中,生成的CMyView类中,包含一个指向CMySet对象的指针m_pSet。该指针与用户的表(这里是xs)相关联,它是由MFCAppWizard建立的,目的是在表单视图和记录集之间建立联系,使得记录集中的查询结果很容易地在表单视图上显示出来。当然,m_pSet所关联的表也可通过ClassWizard来改变。其方法如书335页按书(1)---(5)步骤作。6、MFC的ODBC类见书336页----338页说明:如:查询记录、添加记录、删除记录、修改记录等。7、数据库编程从显示记录总数和当前记录号、编辑记录和处理多个表等几个方面讨论数据库编程的方法和技巧。
7、1)显示记录总数和当前记录号在“数据库编程”的记录浏览过程中,用户并不能知道表中的记录总数及当前的记录位置,这就造成了交互的不完善,因此必须将这些信息显示出来。这时就需要使用CRecordset类的成员函数GetRecordCount和GetStatus,它们分别用来获得表中的记录总数和当前记录的索引,其原型如下:longGetRecordCount()const;voidGetStatus(CRecordsetStatus&rStatus)const;其中:参数rStatus是指向下列的CRecordsetStatus结构的
此文档下载收益归作者所有