VC数据库编程

一、各种技术的关联与区别

1、COM组件是什么?http://baike.baidu.com/view/25941.htm?fr=ala0_1_1#4

1)COM是Component Object Model (组件对象模型)的缩写。

2)COM是一种“软件打包”技术。它使一个软件能按各部分功能划分成许多组件,COM定义了这些组件的结构和规范,彼此连接通讯的机制。

3)COM组件是遵循COM规范编写出来的,以WIN32动态链接库(DLL)或可执行文件(EXE)形式发布的可执行代码组成,但其不是DLL,只是利用DLL进行动态链接。

4)COM组件优点:

①让对象模型完全独立于编程语言,可用C++、Java和VB等任意一种语言编写。

②可以被大多数应用程序再使用(这些应用程序称为组件容器)。

③跨平台。

 

2、OLE是什么?http://baike.baidu.com/view/118545.htm?fr=ala0_1_1

1)OLE:Object Linking and Embedding,对象连接与嵌入,简称OLE技术。

OLE包括:

①桌面应用程序集成。

②定义和实现了COM技术。

2)OLE DB是什么?http://baike.baidu.com/view/239730.htm

OLE DB将传统的数据库系统划分为多个逻辑组件,这些组件之间相对独立又相互通信。

 

3、ActiveX是什么?http://baike.baidu.com/view/28141.htm?fr=ala0_1_1

ActiveX、OLE核心技术都是COM。ActiveX和OLE的最大区别在于,OLE针对的是桌面上应用软件和文件之间的集成,而 ActiveX则以提供进一步的网络应用与用户交互为主。

具体点描述:一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX控件,ActiveX 控件是一种可重用的软件组件,通过使用 ActiveX控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能。如:AVCapture 音/视频捕捉 1.12,基于DirectShow技术开发的音视频讯号捕捉ActiveX控件;ShuX XPMenu ActiveX Control 中文版 1.0.3能使您快速设计出Office XP风格的菜单。

 

4、ADO是什么?

ADO(ActiveX Data Objects) 是一个用于存取数据源的COM组件,包含一组动态链接库,是OLE DB的高层接口。

 

5、ODBC、OLE DB、ADO的关系?http://tilt.lib.tsinghua.edu.cn/node/245

ODBC最先出来,是用来连接oracle、sql server、access等数据库的一种接口标准(后来随着各厂商的扩充,也就都不标准了),各数据库提供实现ODBC的“驱动程序”。ODBC的本意是“ODBC的最大优点是能以统一的方式处理所有的数据库”,其实都是扯淡,因为各数据库对标准SQL都做了大量的扩充,除非你只使用标准的SQL,不然“统一”根本谈不上。
    OLE DB是微软“发明”的,用来淘汰ODBC的,OLE DB不光可以连接各种数据库,还可以连接exchange、活动目录、甚至操作系统文件目录等各种数据库源(也需要分别使用不同的“驱动程序”)
    ADO也是微软的,是用来淘汰早起微软的RDO、DAO的(ADO可以做RDO、DAO能做的所有事),ADO在上层,通过下面的ODBC或者OLE DB来访问数据源(注意不是数据库,因为可访问范围包括活动目录等各种数据)。不过微软目前的ODBC实际是通过OLE DB访问数据源的。

层次关系:
    应用程序 -> ADO -> ODBC -> OLE DB -> 数据源
    或者
    应用程序 -> ADO -> OLE DB -> 数据源

 

二、涉及的知识点:

1、模块和组件的区别:http://zhidao.baidu.com/question/78606176.html

模块是偏向设计的概念,更强调逻辑功能上的划分。

组件式偏向发行的概念,强调“跨项目的可重用性”。

 

2、操作/系统平台和操作系统的区别?

可以这么说,操作系统是操作平台的一个小类. 操作平台有微软的windows平台和DOS平台,另外还有代码公开的linux操作平台.而每个操作平台又有好几个不同的操作系统,如windows操作系统就分windows95/98/2000,windowsXP,windows VISTA, windows NT, windows 7等等……。
而我们常说的系统平台是指的硬件平台.也就是电脑的的硬件技术水平的一个代表,象现在常听的k8平台就是由k8的主版配AMD的CPU组成的.
 
3、驱动程序/设备驱动程序(Device Driver):是一种可以使计算机和设备通信的特殊程序,即是硬件的接口,操作系统(软件)只有通过这个接口,才能控制硬件设备的工作。假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被誉为““硬件和系统间的桥梁”。
 
4、数据库相关部件的关系
1)数据库——数据:是数据的集合,由一个或多个存放数据的表组成。只有一个表的为简单数据库,由多个相关的表组成的是关系数据库。
2)数据库系统(DBS) = 数据库(DB) + 数据库管理系统(DBMS)
3)ODBC主要包括ODBC驱动程序、ODBC管理器、ODBC API。
4)ODBC驱动程序:一种 动态链接库 (DLL),DLL里封装了ODBC API,支持 ODBC 的应用程序(如 Excel)可以用它来访问 ODBC 数据源。每个 ODBC 驱动程序针对一个数据库管理系统 (DBMS),如 SQL Server、Access 等。
5)数据源(Data Source): http://baike.baidu.com/view/286828.htm
在数据源中存储了所有建立 “数据库连接ODBC”的信息。如果数据是水,数据库就是水库,数据源就是连接水库的管道,终端用户看到的数据集是管道里流出来的水。
6)用户操作数据库的两种方式:
①用户 -> DBMS->数据库
②用户 -> 应用程序 -> ADO -> ODBC -> OLE DB -> 数据源 -> 数据库
 
三、做实例过程解决的问题
 
1、关于VC控件里的group属性: http://zhidao.baidu.com/question/89413374.html
①先按Ctrl+D设置Tab顺序,使同一类型且要在同一组里的控件Tab顺序号相连。
②假设该组全为“radio button(单选按钮)”,设置该组第一个控件属性为group,并添加相关联的成员变量,那么第一个 radio button 控件的值将会是 0 ,接着会是 1 2 3… ,它会直到下一个标有 group 的相同控件为止。这样可以更方便的进行程序设计。且在Class Wizard的 Member Variables -> Control IDs:栏里只会显示第一个radio button的ID及相应变量。
 
2、创建表时遇到的错误:
1)RunTimeError是编译时没检查出错误,到了程序运行期才出现的,这些错误隐藏度较高,要善用Debug手段,如F9(断点),F5,F10等检查。
2)SQL语法有误编译器是查不出的,如某个位置多了个逗号,SQL语句一定要好好检查。
3)关键字不能做数据表的字段名,如password。
 
3、计算数据表的行数:SELECT COUNT()用法
 
4、点击窗口上的“X”关闭窗口时调用WM_CLOSE、WM_DESTROY、WM_QUIT的过程:
按下窗口上的“X”,马上发出消息WM_CLOSE,WM_CLOSE响应函数OnClose()默认调用DestroyWindow(),DestroyWindow()又发送WM_DESTROY,WM_DESTROY响应函数OnDestroy()默认发送WM_QUIT,GetMessage()发现WM_QUIT,退出程序。(4个红色的才是关键)
 
5、按下登陆对话框的“X”键或退出按钮直接不创建学生信息管理对话框。
1)一开始想先获得 IDD_TEST_DIALOG 学生信息管理对话框句柄,再发送WM_CLOSE消息给它,添加On_Close响应函数实现。相关函数有GetDlgItem()、GetSafeHwnd()、SendMessage()、PostQuitMessage(0)等。但这想法一开始就是错的,因登陆对话框创建于学生信息管理对话框之前,后者还没创建又怎么接收WM_CLOSE??还是设计思想最重要,搞了半天那4个函数发现无论如何获得的指针句柄等都是NULL,才终觉不对劲。
 
2)用函数时一定要看清是全局函数还是类成员函数,还得注意是否在该类/其派生类的成员函数里调用,有三种调用形式,每种形式对应的参数、返回值都可能不同,假设
CWnd *p;
CWnd wnd;
//三种形式如下所示
①p->SendMessage/wnd.SendMessage(…);  ②SendMessage(…); ③ ::SendMessage(…);
 
3)CDialog::OnOK()和CDialog::OnCancel()的区别:CDialog::OnOK()先调用Updatedata(TRUE)将数据传给控件对应的成员变量,再调用CDialog::EndDialog()关闭对话框。
CDialog::OnCancel()直接调用CDialog::EndDialog()关闭对话框。
 
 
5、改变对话框控件的字体及颜色。
③想用“华文琥珀、行楷等字体”:http://www.cnblogs.com/cy163/archive/2006/11/25/572507.html
④ WM_CTLCOLOR 的消息响应 OnCtlColor 函数:http://baike.baidu.com/view/3798211.htm?fr=ala0_1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编 者 的 话 5 第1篇 基础篇 6 第1章 数据库原理与访问 7 1.1 数据库基本原理 7 1.1.1 概述 7 1.1.2 桌面数据库 7 1.1.3 对象数据库 8 1.1.4 关系数据库服务器 9 1.1.5 选择适用的数据库 9 1.2 数据库访问技术 10 1.2.1 概述 10 1.2.2 ODBC API 10 1.2.3 ODBC的MFC类 11 1.2.4 DAO与RDO 11 1.2.5 OLE DB与ADO 12 1.3 数据库操纵语言SQL 13 1.3.1 SQL命令 13 1.3.2 SQL从句 13 1.3.3 SQL运算符 14 1.3.4 SQL合计函数 14 1.4 小 结 14 第2章 COM与数据库访问 15 2.1 COM的基本原理 15 2.1.1 COM历史 16 2.1.2 COM结构 16 2.1.3 COM优势 17 2.1.4 COM接口 18 2.1.5 COM与数据库访问 19 2.1.6 COM与Internet 19 2.2 ACTIVEX的数据库访问 19 2.2.1 ActiveX简介 19 2.2.2 ActiveX对数据库访问的支持 20 2.3 ATL的数据库访问 20 2.3.1 ATL目标 20 2.3.2 ATL内容简介 22 2.3.3 ATL对数据库访问的支持 22 2.4 小 结 23 第3章 数据库开发过程 23 3.1 阶段1:调查与分析 24 3.2 阶段2:数据建模 24 3.3 阶段3:功能设计 24 3.4 阶段4:选择数据库系统 25 3.5 阶段5:选择数据库访问技术 25 3.6 阶段6:代码设计 25 3.7 阶段7:测试与调试 26 3.8 阶段8:发行产品 26 第4章 VC++数据库开发基础 26 4.1 VC++ 6.0工程创建向导 26 4.2 VC++ 6.0数据库新建工具 27 4.3 VC++ 6.0的数据库工程 29 4.4 小 结 31 第2篇 实例篇 32 第5章 ODBC API编程 33 5.1 了解ODBC API 34 5.2 ODBC API编程步骤 34 5.2.1 步骤1:连接数据源 34 5.2.2 步骤2:分配语句句柄 36 5.2.3 步骤3:准备并执行SQL语句 36 5.2.4 步骤4:获取结果集 37 5.2.5 步骤5:提交事务 38 5.2.6 步骤6:断开数据源连接并释放环境句柄 39 5.3 ODBC API编程实例 39 5.3.1 实例概述 39 5.3.2 实例实现过程 40 5.3.3 编译并运行ODBCDemo1工程 97 5.3.4 ODBCDemo1实例小结 98 5.4 本 章 小 结 99 第6章 MFC ODBC编程 100 6.1 了解MFC ODBC 100 6.1.1 CDatabase类 100 6.1.2 CRecordSet类 100 6.2 MFC ODBC数据库访问技术 101 6.2.1 记录查询 101 6.2.2 记录添加 102 6.2.3 记录删除 102 6.2.4 记录修改 102 6.2.5 撤销数据库更新操作 103 6.2.6 直接执行SQL语句 103 6.2.7 MFC ODBC的数据库操作过程 103 6.3 MFC ODBC编程实例 104 6.3.1 实例概述 104 6.3.2 实例实现过程 105 6.3.3 编译并运行ODBCDemo2工程 132 6.3.4 ODBCDemo2实例小结 137 6.4 本 章 小 结 137 第7章 DAO数据库编程 138 7.1 DAO的数据访问 138 7.1.1 DAO对象 138 7.1.2 MFC对DAO的支持 139 7.1.3 DAO与ODBC的比较 139 7.1.4 MFC的DAO类简介 139 7.2 DAO编程实例 142 7.2.1 实例概述 142 7.2.2 实例实现过程 143 7.2.3 运行DAODemo工程 167 7.2.4 DAODemo实例小结 171 7.3 小 结 172 第8章 OLE DB客户数据库编程 172 8.1 OLE DB原理 172 8.1.1 OLE DB与ODBC 172 8.1.2 OLE DB的结构 173 8.1.3 OLE DB的优越性 173 8.1.4 OLE DB对象 174 8.1.5 OLE DB客户模板结构 177 8.1.6 OLE DB客户模
第1篇 基础篇第1章 数据库原理与访问 21.1 数据库基本原理 21.1.1 概述 21.1.2 桌面数据库 31.1.3 对象数据库 31.1.4 关系数据库服务器 51.1.5 选择适用的数据库 51.2 数据库访问技术 61.2.1 概述 61.2.2 ODBC API 71.2.3 ODBC的MFC类 71.2.4 DAO与RDO 81.2.5 OLE DB与ADO 91.3 数据库操纵语言SQL 101.3.1 SQL命令 101.3.2 SQL从句 111.3.3 SQL运算符 111.3.4 SQL合计函数 111.4 小结 12第2章 COM与数据库访问 132.1 COM的基本原理 132.1.1 COM历史 132.1.2 COM结构 142.1.3 COM优势 152.1.4 COM接口 162.1.5 COM与数据库访问 172.1.6 COM与Internet 172.2 ActiveX的数据库访问 182.2.1 ActiveX简介 182.2.2 ActiveX对数据库访问的支持 182.3 ATL的数据库访问 192.3.1 ATL目标 192.3.2 ATL内容简介 212.3.3 ATL对数据库访问的支持 222.4 小结 22第3章 数据库开发过程 233.1 阶段1:调查与分析 233.2 阶段2:数据建模 243.3 阶段3:功能设计 243.4 阶段4:选择数据库系统 253.5 阶段5:选择数据库访问技术 253.6 阶段6:代码设计 263.7 阶段7:测试与调试 263.8 阶段8:发行产品 26第4章 VC++数据库开发基础 274.1 VC++ 6.0工程创建向导 274.2 VC++ 6.0数据库新建工具 274.3 VC++ 6.0的数据库工程 304.4 小结 33第2篇 实例篇第5章 ODBC API编程 355.1 了解ODBC API 355.2 ODBC API编程步骤 365.2.1 步骤1:连接数据源 365.2.2 步骤2:分配语句句柄 385.2.3 步骤3:准备并执行SQL语句 385.2.4 步骤4:获取结果集 395.2.5 步骤5:提交事务 415.2.6 步骤6:断开数据源连接并释放环境句柄 415.3 ODBC API编程实例 415.3.1 实例概述 415.3.2 实例实现过程 425.3.3 编译并运行ODBCDemo1工程 1095.3.4 ODBCDemo1实例小结 1115.4 本章小结 111第6章 MFC ODBC编程 1126.1 了解MFC ODBC 1126.1.1 CDatabase类 1126.1.2 CRecordSet类 1126.2 MFC ODBC数据库访问技术 1136.2.1 记录查询 1136.2.2 记录添加 1146.2.3 记录删除 1156.2.4 记录修改 1156.2.5 撤销数据库更新操作 1156.2.6 直接执行SQL语句 1156.2.7 MFC ODBC的数据库操作过程 1166.3 MFC ODBC编程实例 1166.3.1 实例概述 1166.3.2 实例实现过程 1176.3.3 编译并运行ODBCDemo2工程 1496.3.4 ODBCDemo2实例小结 1546.4 本章小结 155第7章 DAO数据库编程 1557.1 DAO的数据访问 1557.1.1 DAO对象 1557.1.2 MFC对DAO的支持 1567.1.3 DAO与ODBC的比较 1567.1.4 MFC的DAO类简介 1577.2 DAO编程实例 1607.2.1 实例概述 1607.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值