分享
 
 
 

MFC数据库编程(由Programming Visual C++相关章节翻译而来)(一)

王朝vc·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

MFC数据库编程

Microsoft ODBC 数据库管理

微机普及的部分原因在于它在查询目录、处理要求、打印薪水册等方面价格低廉。商务应用程序需要到大型数据库中某个记录的快速连接。最早的微机数据库工具是dBase II,它是拥有特定编程语言和文件格式的单用户产品。如今有很多可编程数据库管理系统供Windows程序员选择,包括Inprise Paradox,Microsoft Access,Microsoft FoxPro和PowerBuilder。这些产品大多数具有访问本地数据和远程中心计算机上的数据能力。后者需要数据库服务器软件如ORACLE和Microsoft SQL Server。

Visual C++ 企业版自带了SQL Server。

作为一个MFC程序员,您如何做到这些?Visual C++包含了编写Windows数据库应用程序所需的所有组件。事实上,这个产品包括了两个不同的客户端数据库访问系统:ODBC(Open Database Connectivity)和DAO(Data Access Objects)。另外,Visual C++现在包含了通过OLE DB直接访问数据的模板。本章主要介绍ODBC标准。ODBC包含了一系列提供标准数据应用程序编程接口的可扩展DLL。ODBC是基于标准的数据查询语言(SQL)的。使用ODBC和SQL,你就能写出独立于任何数据库产品的数据库访问代码。

Visual C++为ODBC编程提供了相应工具和MFC类,这是本章的主题。你将了解ODBC的基本概念,并且你将看到四个示例程序:示例EX31A利用MFC类Crecordset来使用ODBC rowset,示例EX31B使用MFC类CrecordView,EX31C使用符合记录集,EX31D在不帮定的情况下使用Crecordset。

数据库管理的优点

序列化进程将一个文档对象和一个磁盘文件绑定。当文档打开时,所有数据必须读入内存,并且在文档关闭时所有数据又必须写回磁盘文件。很显然,你不能将一个比可用虚拟内存大的文档。即使文档能装入内存,也没有必要每次都将数据读入内存。

也许你可以自己编写任意读写磁盘文件,事实上发明了你自己的DBMS,但是你不一定有那么多精力。并且,使用DBMS能给你带来很多好处,包括以下:

· 使用标准文件格式-提到数据库格式,很多人联想到dBase/Xbase DBF文件。这只是一种数据库文件格式,但是很普及。很多数据以DBF文件分发,并且很多程序能读写这种文件格式。后来Microsoft Access MDB格式变得很普及。使用MDB格式,数据库的所有表格和索引多能存储在一个磁盘文件里。

· 索引化的文件访问-如果你想通过关键字快速访问记录,你就需要索引化的文件访问。你可以自己编写B树文件访问过程,但那很繁琐并且别人已经完成。所有DBMS多带有高效的索引化访问过程。

· 数据完整性完全保护-很多专业化的DBMS产品拥有保护数据的过程。事务处理就是一个例子。一个事务包括一系列相互联系的变化。如果整个事务不能进行,它能回滚,从而使数据库恢复此次事务以前的数据。

· 多用户访问控制-也许你的程序目前不需要多用户访问功能,但可能将来需要。大多数DBMS提供记录锁定以防止用户之间互相影响。有些多用户DBMS使用客户-服务器模式。在此模式下,大多数操作由一个数据库服务器处理;工作站负责和用户沟通。有些多用户DBMS在工作站上处理数据操作,而他们负责控制工作站对共享文件的访问。

结构化查询语言

结构化查询语言在软件业界可以说是家喻户晓的。在SQL世界里,数据库就是由行和列组成的表的集合。很多DBMS支持SQL,并且很多程序员知道SQL。SQL标准在不断改进,并且不同产品的SQL语法也不尽相同。一些SQL扩展,比如blob能力,允许存储图像、声音等复杂数据结构。

ODBC标准

ODBC不仅定义了SQL语法规则还定义了所有SQL数据库的C语言编程借口。现在一个C/C++程序能访问任何拥有DBMS驱动的DBMS。Visual C++里自带的ODBC SDK提供了DBF文件、Access MDB文件、Excel XLS文件、Foxpro 文件、ASCII文本文件和SQL Server数据库的驱动。

其他数据库公司,例如Oracle、Infomix、Progress、Ingres和Centura Software也在他们的DBMS产品提供了ODBC驱动。例如,你使用dBase/Xbase驱动编写了一个MFC程序,这个程序使用Access驱动照样运行。不需要重新编译程序,应用程序只需装载不同的DLL。

除C++程序以外,还有其他DBMS编程环境能利用这种新标准的有点。你可以编写一个C++程序去更新SQL Server 数据库,然后你可以使用现成的ODBC兼容报表工具格式化和打印数据。ODBC将用户界面和实际数据库管理进程分离开来。你再也不需要从数据库引擎供应商哪里另外购买界面工具。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有