C++中用ODBC和ADO方式数据库编程.pdf





《C++中用ODBC和ADO方式数据库编程.pdf》由会员分享,可在线阅读,更多相关《C++中用ODBC和ADO方式数据库编程.pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 VC+利用利用 ODBC 和和 ADO 方式访问数据库的方法及实例方式访问数据库的方法及实例 大家一起努力学习软件开发,祝你取得成功!大家一起努力学习软件开发,祝你取得成功!企事业企事业管理信息管理信息处理的处理的 C+的数据库的数据库编程编程 第第 1 节节 数据库的数据库的逻辑设计逻辑设计 1.1 商品商品进销存进销存数据库管理数据库管理项目项目 .等数据表。在表的数据结构设计中,字段名尽量采用“可读性可读性”较好的标识符,在程序中看到它,也就知道它实际含义,即“说明”处的文字解释。下面就是这样做的,在。1.2 学生成绩管理学生成绩管理数据库数据库项目项目 在下面的讨论中,结合本教科书(
2、详见第 247 页),不妨做“学生成绩管理数据库”,它有三个数据表:学生信息表学生信息表(学号学号/C/8,姓名姓名/C/8,性别性别/C/6,出生日期出生日期/C/10,身高,身高/C/4,专业专业/C/16)表名为 StudentTable (number,name ,sex ,birthdate,height,specialty)课程表课程表(课程号课程号/C/8,所属专业所属专业/C/20,课程名课程名/C/10,学分学分/C/4,考试时间考试时间/C/10)表名为 CourseTable (CourseNumber,ForSpecial ,CourseName,TotalCredit
3、,TestDate )学生成绩表学生成绩表(学号学号/C/8,课程号课程号/C/8,成绩成绩/C/6)(studentNO,courseNo,score )表名为 StudentScoreTable 上面的数据库,不管是在上面的数据库,不管是在 ACCESS 系统中设计的,还是在系统中设计的,还是在 SQL Server 系统中设计的,系统中设计的,VC+的使用的使用和和 SQL 语句语句引用的引用的方式是一样的、效果是一样的方式是一样的、效果是一样的。C+特别适合做“文本(类型 CString)”处理。在学生成绩管理数据库中,各字段一律定义为“文本型”,当字段实际类型是数值型或要做算术运算时
4、,C+提供了将数值字符串转换为算术型量转换函数:atoi(str)、atol(str)依次将串转换为 int、long;而 atof(str)转换 double 或 float 型。第第 2 节节 数据库管理系统数据库管理系统和和数据库的数据库的物理设计物理设计 2.1 用用 ACCESS 系统创建系统创建学生成绩管理学生成绩管理数据库数据库 2.2 用用 SQL Server 系统创建系统创建学生成绩管理学生成绩管理数据库数据库 省略 2.3 将创建的数据库添加到系统将创建的数据库添加到系统数据源数据源 ODBC 的“的“用户 DSN”中”中 例如:由 ACCESS 创建的数据库,它是一个容
5、器型文件,扩展名为“.mdb”。所以,上述数据库文件是“学生成绩管理.mdb”。操作:“开始/控制面板/性能和维护/管理工具/ODBC 数据源”,则弹出“ODBC 数据源管理器”对话框。先选择“用户 DSN”,再按“添加(D)”按钮:按“添加”按钮之后,又弹出下面“创建新数据源创建新数据源”对话框:取数据源的驱动程序“Microsoft Access Driver(*.mdb)”之后,按“完成完成”按钮。当按“完成完成”按钮之后,系统回到第 2 步,弹出下面“ODBC Microsoft Access 安装安装”对话框。在此,完成将已经设计的 ACCESS 系统的数据库送入系统 ODBC 并且
6、命名(数据源(N):处填写)。例如,将“学生成绩管理.mdb”数据库,送入系统数据源 ODBC 中并且命名为 StudentAndJava:第第3节节 C+C+开发应用程序开发应用程序的的基本知识 基本知识 33.1 1 V C+系统V C+系统的几个重要的的几个重要的英文词语英文词语 (1)(1)I dI d e n t i f i e r 标识符(俗话讲“名字”),缩写词是I DI D。(2)(2)M F CF C M i c r o s o f t FF o u n d a t i o n C C l a s s L i b r a r y 微软的基础类库。(3)(3)A p pA p
7、p l i c a t i o n(A p pA p p)泛指“应用”(程序)。(4)(4)A P IA P I AA p p l i c a t i o n PP r o g r a m m i n g II n t e r f a c e 应用程序接口。(5)(5)A F XA F X A p p l i c a t i o n F r a m e w o r k s 应用程序框架。(6)(6)A p p W i z a r d 应用程序向导。(7)(7)W o r k S p a c e V C+的工作空间视窗,有三个页(面):C l a s s V i e wV i e w 页:“类”
8、视图页,展示当前应用程序所用的类。R e s o u r c e V i e wV i e w 页:“资源”视图页,展示当前应用程序所用的资源(如D i a l o g 和M e n u 等)。F i l e V i e wV i e w 页:“文件”视图页,展示当前应用程序所存放的文件(如扩展名为.c p p、.h 文件)。(8)(8)O D B CO D B C O O p e n DD a t a bb a s e C C o n n e c t i v i t y(开放的数据库连接)。为各种类型的数据库管理系统提供了统一的编程接口,例如不同数据库系统的驱动程序。3.2 3.2 M F
9、CF C 中提供的中提供的基类基类(B a s e C l a s sB a s e C l a s s)(1)(1)C O b j e c t 是大多数类的基类,完成动态空间的分配与回收,支持一般诊断与出错处理。(2)(2)C C m d T a r g e t 负责将系统事件(消息)和窗口事件(消息)发送给响应该事件的对象。(3)(3)C W i n A p p 是C C m d T a r g e t 类的派生类,完成对线程的控制(线程的建立、运行、终止、挂起)。(4)(4)C D o c u m e n t 是文档类,包括应用程序在运行期间所得到的数据。(5)(5)C W n d 是通
10、用窗口类,提供W i n d o w s 中的所有通用特性、对话框和控件。(6)(6)C F r a m e W n d 是从C W n d 继承来的,实现了标准的框架应用程序。(7)(7)C D i a l o g 用来控制对话框窗口。(8)(8)C V i e w 用于让用户通过窗口来访问文档。(9)(9)C M D I F a m e W n d 是一个简化的窗口框架(没有最大化和最小化按钮),用于多文档应用程序的主框架窗口的显示和管理。(1 0)(1 0)C M D I C h i l d W n d 用于文档子窗口的显示和管理。(1 1)(1 1)动态记录集C R e c o r d
11、 S e t 选择和连接O D B C 中数据库的某个“表”。3.3 3.3 C+C+的对话框(的对话框(表单视图表单视图)中最基本“中最基本“控件”的使用”的使用 (1)(1)静态文本(S t a t i c T e x t)设计“标签”,默认的I DI D 是“I D C _ S T A T I C”。不接受用户的输入,不产生通知消息。例如,书写数据库的字段名、提示词。(2)(2)组框(G r o u p B o x)定义一个矩形框,默认的I DI D 是“I D C _ S T A T I C”。矩形框内可以放按钮等控件,使界面设计“好看”一点。(3)(3)编辑框(E d i t B o
12、 x)在对换话框中用于设计文本数据的显示或输入,系统默认的I DI D 是“I D C _ E D I T 1”,用其属性对换话框中“G e n e r a l”选项后,用户可重新命名字(例如:I D C _ S T A T I C _ n u m b e r)。(4)(4)命令按钮(B u t t o n)映射消息:B N _ C L I C K E D 单击,B N _ D O U B L E C L I C K E D 双击,响应“单击”消息的是“事件(E v e n t s)”函数程序。系统默认的I DI D 是I D C _ B U T T O N 1。C+中C+中的消息的消息驱动机
13、制 W i n d o w s 的环境中,系统产生的动作和用户程序运行产生的动作“称为”事件(E v e n t s)产生的消息(M e s s a g e),W i n d o w s 是通过系统发送消息来完成用户输入的。例如:用户按鼠标左按钮,系统发送 W M _ L B U T T O N D O W N 消息;用户敲一个字符键,系统发送 W M _ C H A R 消息;用户进行菜单选择、工具按钮单击等操作,系统发送 W M _ C O M M A N D 消息;C+中 C+中的资源的资源 应用程序中的光标、菜单、工具栏、位图、对话框、.,都是资源,系统都用相应的“标识符”来区分。这些
14、资源,像V C+中的常量一样,可以被编辑和修改。V C+的许多编辑器,都能达到“所见即所得”的设计效果。例如:I D O K 为对话框中“确认”,I D C A N C E L 为对话框中“取消”,B N _ C L I C K E D 为单击按钮。W i n d o w s 的动态连接库(.动态连接库(.D L LD L L)实现用户界面、在屏幕上显示文本和图形,都是通过动态连接库来实现的。动态连接库是一些具有扩展名为D L L 文件,文件中是一些特殊结构的函数。例如:U S E R 3 2.D L L,负责窗口管理,功能有消息、菜单、光标、计时器,其它与控制窗口显示相关的功能。3.4 3.
15、4 在在C+中中创建一个工程(创建一个工程(Project)并且附带并且附带数据库数据库的基本步骤的基本步骤 (1)在C+环境中,选择菜单“文件文件/新建新建”,在弹出的“新建”对话框中,取“工程/MFC AppWizard(exe)/给工程命名”。例如,工程名是“学生成绩管理”:(2)在MFC向导的第第1步步,选择“S单个文档”(或M多重文档),然后按“下一步”按钮。即,要创建一个表单视图表单视图(界面),在界面上设置各种“控件”:(3)在 MFC 向导的第第 2 步步,取“W 数据库查看使用文件支持”,并通过命令 Data Source 去浏览已经存放在 ODBC 中的数据库及其数据库中的
16、一个表:数据库和数据表选择成功后,按 MFC 向导对话框中“完成”按钮以及最后的“确定”按钮,就进入下面的 C+的 MFC 开发环境。可以用“工具箱”中的控件在界面上设计了,例如控件(标签、文本框、组框、命令按钮,在工具箱中的图标依次是)。注意:“W 数据库数据库查看查看使用文件支持使用文件支持”将数据库与表单视图连接在一起,或者说建立了“表单视图与记录集”之间的联系,系统自动产生了程序操作数据库的指针 m_pSet-。第第4节节 用用C+C+做应用程序开发中做应用程序开发中的的技术技术或或技巧技巧的汇总的汇总 44.1 数据库指针“数据库指针“m_pSet-”常用的”常用的成员函数成员函数(
17、完成不同的完成不同的功能功能)(1)激活界面中控件 UpdateData(TRUE);激活表单中控件,例如m_Name、m_Number、m_Result等。UpdateData(FALSE);使用户能看见表单视图(界面上)当前记录的m_Name、m_Number、等的变化 (2)数据指针的位置的确定 m_pSet-IsEOF()是否遇到数据表尾尾,“是”返回值为真真。m_pSet-IsBOF()是否为数据表文件头头。m_pSet-MoveFirst();指向第第1个个记录 m_pSet-MoveNext();指向当前位置的下一个下一个记录 m_pSet-MovePrev();指向当前位置的前
18、一个前一个记录 m_pSet-MoveLast();指向最后一个最后一个记录 m_pSet-m_字段名;(例如:学号字段,m_pSet-m_number)(3)在数据库中添加一个新记录 m_pSet-AddNew();追加一条新记录追加一条新记录的功能函数 在此语句之后,书写向数据库追加的记录的各个字段。最后写下面两句换话:m_pSet-Update();新记录写入数据库的数据表。m_pSet-Requery();刷新记录集。这将改动“物理”数据库。(4)删除数据库中当前显示的记录 m_pSet-Delete();删除“当前显示当前显示”的记录时,有时会出现的记录时,有时会出现“”字样回显。字
19、样回显。(5)执行“统计或或查询”类命令的一般程序模式 在对话框上添加一个“命令按钮命令按钮”,再创建该命令的事件事件(Events.)函数函数,在函数体内书写程序,组织“循环、判定、数据指针移位循环、判定、数据指针移位”等操作。例如:m_pSet-MoveFirst();while(!m_pSet-IsEOF()没有遇到数据表尾时继续循环。统计和判断语句;放结果信息的控件m_Result 成员变量;MessageBox(按确定键看下一个记录,对话框,0);m_pSet-MoveNext();44.2 应用程序应用程序执行时执行时的的“人机交互”“人机交互”办法办法 可以可以引用系统内部的人机
20、交互人机交互对话框,下面的是它们一般格式:AfxMessageBox(提示信息,int,int);窗口标题不能自己确定 MessageBox(提示信息,窗口标题,int);可以自己确定窗口标题 (1)AfxMessageBox(窗口内提示信息,标题默认为项目名,100,10 );返回值是整数。有“是(Y)”、“否(N)”两个按钮,选择“是(Y)”函数返回值 6、“否(N)”函数返回值 7。(2)MessageBox(窗口内提示信息,窗口标题,0 );只有一个“确定”按钮,返回值是整数1。如果是如果是 int flag=MessageBox(窗口内提示信息,窗口标题,100);有“是(Y)”、“
21、否(N)”两个按钮,选择“是(Y)”函数返回值 6、“否(N)”函数返回值 7。用户在程序中用 if 语句语句判 flag 中保存的返回值,决定执行“则”或“否则”动作。(3)利用字符串“并置”运算,将记录的各个字段“合并”到 1 个字符串变量中,放到MessageBox()或者 AfxMessageBox()中,作为提示信息随时输出。例如:CString info=0;info =学号学号:t+m_pSet-m_number+n;info+=姓名姓名:t+m_pSet-m_name +n;info+=性别性别:t+m_pSet-m_sex +n;info+=身高身高:t+m_pSet-m_c
22、olumn1+n;info+=出生日期出生日期:t+m_pSet-m_birthdate+n;if(查询条件满足)MessageBox(info,查询到的记录如下:查询到的记录如下:,100);return;44.3 更改更改应用程序的“应用程序的“标题标题”在C+环境中创建的“项目(Project)”,例如“学生成绩管理”工程,做“编译、连接、运行”时,结果显示为:在标题栏上出现了“无标题无标题”字样。我们希望将“无标题无标题学生成绩管理”中的“无标题”去掉,改成设计者自己定义的标题自己定义的标题,例如换成为“学生成绩管理”。方法方法是:是:在Class View 页,展开类CMyApp(因
23、为我们用汉字“学生成绩管理”作为工程名,C+不识别“汉字标识符”,所以工程类名用My代替,全名是CMyApp),双击函数InitInstance。双击函数InitInstance之后,在弹出的源码文档中,找到函数InitInstance的下面显示位置(该函数尾部),添加“深色深色”的一行:m_pMainWnd-SetWindowText(学生成绩管理);/新加的 再重新“编译、连接、运行”,结果的标题就变成为希望的了:44.4 在在主界面主界面(main()函数所在地)用命令方式用命令方式操作操作另一个对话框另一个对话框中的的成员变量成员变量。这是开发较复杂项目时必然出现的问题。例如,对一个数
24、据表作记录添加时,用另一个对话框接受用户输入的字段值,在调用处启动该对话框中,然后引用其控件的成员变量成员变量,再做记录添加操作。同样,做不同数据表操作时,有时也需要“交流信息”,也可以用这样办法来实现。(1)在主调文档中用 Insert Dialog 命令命令新建立一个对话框,命名为 Dlg1Name。在V C+的工作空间视窗中选择“资源页R e s o u r c e V i e w”,然后“右击”D i a l o g,在弹出的快捷菜单中选择“Insert Dialog”(见下图),则出现一个对话框,按“C t r l +W”键之后,给该对话框命名为Dlg1Name(以后再插入对话框时,
25、可以命名为Dlg2Name、Dlg3Name、Dlg4Name等)等)。当单击选项“Insert Dialog”之后,出现下面下面只带“O K 和C a n c e l”两个按钮的对话框,默认的I D是I D D _ D I A L O G 1、默认的标题是Dialog:按“C t r l +C t r l +W”键之后,系统弹出“A d d i n g a C l a s s”对话框,按“O K”按钮,则出现给该对话框资源命名字的“New Class”对话框,我们输入Dlg1Name(这个名字就是IDD_DIALOG1以资源方式出现在程序中,是程序员操作该对话框的手段,请见下面(2)点),然
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 中用 ODBC ADO 方式 数据库 编程

限制150内