一、各种技术的关联与区别
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 等。
在数据源中存储了所有建立 “数据库连接ODBC”的信息。如果数据是水,数据库就是水库,数据源就是连接水库的管道,终端用户看到的数据集是管道里流出来的水。
6)用户操作数据库的两种方式:
①用户 -> DBMS->数据库
②用户 -> 应用程序 -> ADO -> ODBC -> OLE DB -> 数据源 -> 数据库
三、做实例过程解决的问题
①先按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、改变对话框控件的字体及颜色。