毕业设计的问题!关于COM 我的毕业设计用VB做界面,VC连接数据库,据说是用到了COM技术可是,COM对我来说有些深奥!又找不到合适的参考书!请大家给我介绍介绍COM连接数据库的好处,或者提供一些相关文章书籍资料!用作毕业论文!谢谢!100分!!!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果仅仅是用VC连接数据库,意义不太明显。如果要发挥COM的优点的话,最好能实现数据库查询、添加、更新和删除等功能的封装 “如果要发挥COM的优点的话,最好能实现数据库查询、添加、更新和删除等功能的封装“我的意思就是这个,封装的好处有哪些呢?vb连接数据库时同时连接用户数会有限制,COM的速度好像慢一点?另外一点就是利于以后的程序升级,扩充功能?还有其他好处吗? COM组件的优点: 1、实现多人协同开发 2、VB界面与VC组件实现物理上的分离 3、简化VB的代码编写 4、将C/S结构转为B/S非常容易 抓紧啦时间快不够了如果你用com还要新学的话 COM特性:1,语言无关性2,进程透明性3,可重用性你用VC可以直接包装一下ADO嘛,呵呵,这样就可以绕开ODBC API了,比较简单些实在不行给我发Mail。 基本不同意楼上的观点俺认为在这样的系统中COM的优点不大,缺点不小 我觉得要把系统搞大,搞复杂,用com做中间层还可以,小系统要经常更新的用com可以。 我的毕业设计是一个较大的管理系统的一部分,是给一家企业用的,至于com,有代码可以参考做起来倒是没难度,只不过我想在毕业论文里写一些com的东西,要不显得太肤浅!:)确实在编写过程中,我觉得它比直接用vb思路更清晰,编写更方便,可能在整个系统调试阶段会有很多麻烦,但是对以后的维护和代码重用有好处! 大家能给我推荐一些资料吗?连COM最基本的东西我都不知道,现在只会应用而已! 是用到com的组建吧,一般,学校好像不太会涉及到com的 gz潘爱民的com原理和com+两本书对初学者那本好,可以直接学com+吗?能否推荐一两本com类的别的好书? abrams我还不是太清楚,com 和 com组建?有什么区别?有明显区别吗? 理解COM要求有很好的C++基础,不过现在都.NET了,再学COM意义不大。连接数据库也没有必要用VC来实现,VC主要用来实现业务逻辑 ,可以将业务逻辑封装成COM组件,或者ActiveX,供VB调用。VC连接数据库也是使用ADO或OLE_DB,DAO等等技术,VB也是使用DAO,ADO,而且VC显然比VB要麻烦。 VC连接数据库,其实与COM内幕的东西关系不大只不过用ADO的时候,ADO本身就是一种COM组件.其实平时使用ADO并不需要了解太多COM的东西只是需要加几个语句而已,不过强烈建议把COM学好COM -- 组件对象模型,是一系列规范的集合,也是一种思维方式COM组件 -- 根据COM的特点,具体实现后东东,有具体的功能和目的 vb里面ADO不就是微软写的组件么? COM是一种二进制代码重用标准,与具体语言无关,COM有自己的标准数据类型,与其它语言的数据类型类似 俺回答另外一个帖子的帖子,写完后自我感觉比较得意,在这里也贴出来,混点分:)从规范上来讲,二进制兼容,位置透明性,接口的唯一性等等特性,方便了COM的使用者(客户端),只要符合规范的调用方法,都可以使用用它。从oo的角度看,其封装的特性更明显一些。当然,你的dll,或者lib,都有封装的能力,但com的方式更明显一些,使用com,会强迫你使用oo的方式来规划,思考。设计实现com的过程中,你面向的是类,接口,接口方法,而dll,lib面向的是过程。在使用上,com在使用过程中你会很清晰地看到到底是哪个对象在工作,而dll,lib一般来说你看到的都是函数。简单的例子,你的xx.dll提供函数a,yy.lib提供函数b你在使用的时候,调用a,或者调用b,从代码上看不出到底是哪个东西在干活而用com方式,一般来说,你都要使用xx->a或xx.a,yy->b或yy.b的方式。显然com封装得更彻底。至于封装的意义,俺就不说了。对于com和activex,应该说,activex是com的规范的具体应用,activex是实现了更多的已经定义的接口的com组件,如IPesistxxx,...之类的对于com开发的复杂度,俺认为,一个优秀的有经验的vc程序员,从接触到能进行简单的组件开发与实现,用不了一周的时间。而对于一个桌面系统来说,很多的复杂的com技术可能不会涉及到。至于.net,j2ee,cobra等组件技术,在目前的一般桌面系统中,没有太大的应用可能,而com与系统结合更自然一些。也就是说,在桌面系统中如果考虑组件技术,com肯定更有优势(目前)。但从具体情况分析,既然你们的东西都已经用dll,lib做了比较好的封装,重新用com实现要考虑是否有必要了,还要考虑开发成本了。如果你不需要其他开发语言,开发环境也来使用你已经封装的功能的话,那么二进制兼容就没有多大意义。如果你不用分布式,那么位置透明性也失去意义如果你的东西不与操作系统的其他组件、应用等进行操作配合,那么接口的唯一性也没有什么意义了 听我的导师说,我做的系统用到的技术是比较先进的,为什么有很多人说用com没必要呢?也许是我理解错了?或者,我现在用到的并不仅仅是com连接数据库?我想,我的导师还有程序的主要设计者(博士)不会是很弱的吧?com的建立过程如下:1.新建/ATL COM AppWizard/support MFC/support MTS2.在StdAfx.h中加入:import "j:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")导入ADO3.新建方法,连接数据库这种方法应用到的就是com连接数据库吗?还有就是,我想知道它与直接用vb连接数据库的区别和好处?谢谢! 你本身建立一个COM,同时你也在使用COM(即ADO)。你可以在你的COM中实现业务逻辑,而ADO只是用来与数据库打交道。VC中与VB连接数据库的区别主要是效率问题。当然,VC比VB要复杂得多,你需要知道很多的COM知识,而用VB则可以什么也不知道。 用组件进行数据库访问,主要是把数据的处理跟数据存储和数据表示分离,在此组件亦称中间件,属于三层c/s结构的应用逻辑层,不过用组件确实能学到很多东西,尤其是和专业课联系紧密,如数据结构、面性对象的所有概念、编程思想、软件工程、操作系统等,对Windows编程也是非常有好处的,爱好组件技术的同志们,加油阿 COM当然是有必要的,不只是Windows下面才采用这样的结构在其它系统中可以使用CORBA来做三层应用基本上COM与CORBA目的是相同的直接用VB连接也可以实现功能上的要求,但是如果需要变化,那么你必须修改VB代码与数据库之间的接口如果中间多了一个中间层,那么你的应用程序不需要修改,只需要修改组件的内容,模块性更强强强强,另外,如果你的组件接口相当灵活,完全可以不断扩充 COM的思想不会过时!要说时髦UML好象... 谢谢大家的回答!前一段忙着做程序,也没来看看!今天准备过来结贴的!在应用com的过程中,除了com本身的技术上的优势外,我确实也体会到了组件思想的好处,再修改程序,修改数据库的时候,确实要方便很多!只不过,我对com的理解仅限于应用,遗憾! 帮我看下这两个数组的结果。。 MFC菜单问题 VC6.0调试,最后错误显示在mfc/src/strcore.cpp第325行,是什么错误?????? 请问如何向Windows media player 发送 Ctrl+P 快捷键 几个SDK基础的问题,请教高手 请教问题 编译时,出错,位置在系统自带的文件里,怎么办? 怎么在托盘图标上点右键出来一个菜单 一个formview类的初始化问题 bmp.GetPixel()???? 串口通信 使用MFC开发ActiveX控件中遇到的公共属性问题!
如果要发挥COM的优点的话,最好能实现数据库查询、添加、更新和删除等功能的封装
vb连接数据库时同时连接用户数会有限制,COM的速度好像慢一点?
另外一点就是利于以后的程序升级,扩充功能?还有其他好处吗?
1、实现多人协同开发
2、VB界面与VC组件实现物理上的分离
3、简化VB的代码编写
4、将C/S结构转为B/S非常容易
时间快不够了
如果你用com
还要新学的话
1,语言无关性
2,进程透明性
3,可重用性
你用VC可以直接包装一下ADO嘛,呵呵,这样就可以绕开ODBC API了,比较简单些
实在不行给我发Mail。
俺认为在这样的系统中COM的优点不大,缺点不小
潘爱民的com原理和com+两本书对初学者那本好,可以直接学com+吗?能否推荐一两本com类的别的好书?
我还不是太清楚,com 和 com组建?有什么区别?有明显区别吗?
连接数据库也没有必要用VC来实现,VC主要用来实现业务逻辑 ,可以将业务逻辑封装成COM组件,或者ActiveX,供VB调用。VC连接数据库也是使用ADO或OLE_DB,DAO等等技术,VB也是使用DAO,ADO,而且VC显然比VB要麻烦。
只不过用ADO的时候,ADO本身就是一种COM组件.其实平时使用ADO并不需要了解太多COM的东西
只是需要加几个语句而已,不过强烈建议把COM学好COM -- 组件对象模型,是一系列规范的集合,也是一种思维方式
COM组件 -- 根据COM的特点,具体实现后东东,有具体的功能和目的
你在使用的时候,调用a,或者调用b,从代码上看不出到底是哪个东西在干活
而用com方式,一般来说,你都要使用xx->a或xx.a,yy->b或yy.b的方式。
显然com封装得更彻底。至于封装的意义,俺就不说了。
对于com和activex,应该说,activex是com的规范的具体应用,activex是实现了更多的已经
定义的接口的com组件,如IPesistxxx,...之类的对于com开发的复杂度,俺认为,一个优秀的有经验的vc程序员,从接触到能进行简单的
组件开发与实现,用不了一周的时间。而对于一个桌面系统来说,很多的复杂的com技术
可能不会涉及到。至于.net,j2ee,cobra等组件技术,在目前的一般桌面系统中,没有太大的应用可能,而com与系统结合更自然一些。也就是说,在桌面系统中如果考虑组件技术,com肯定更有优势(目前)。但从具体情况分析,既然你们的东西都已经用dll,lib做了比较好的封装,重新用com实现
要考虑是否有必要了,还要考虑开发成本了。如果你不需要其他开发语言,开发环境也来使用你已经封装的功能的话,那么二进制兼容就没有多大意义。
如果你不用分布式,那么位置透明性也失去意义
如果你的东西不与操作系统的其他组件、应用等进行操作配合,那么接口的唯一性也没有什么意义了
也许是我理解错了?或者,我现在用到的并不仅仅是com连接数据库?
我想,我的导师还有程序的主要设计者(博士)不会是很弱的吧?com的建立过程如下:
1.新建/ATL COM AppWizard/support MFC/support MTS2.在StdAfx.h中加入:
import "j:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
导入ADO3.新建方法,连接数据库
这种方法应用到的就是com连接数据库吗?还有就是,我想知道它与直接用vb连接数据库的区别和好处?
谢谢!
VC中与VB连接数据库的区别主要是效率问题。当然,VC比VB要复杂得多,你需要知道很多的COM知识,而用VB则可以什么也不知道。
在其它系统中可以使用CORBA来做三层应用
基本上COM与CORBA目的是相同的
直接用VB连接也可以实现功能上的要求,但是如果需要变化,那么你必须修改VB代码与数据库之间的接口
如果中间多了一个中间层,那么你的应用程序不需要修改,只需要修改组件的内容,模块性更强强强强,另外,如果你的组件接口相当灵活,完全可以不断扩充
今天准备过来结贴的!
在应用com的过程中,除了com本身的技术上的优势外,我确实也体会到了组件思想的好处,再修改程序,修改数据库的时候,确实要方便很多!只不过,我对com的理解仅限于应用,遗憾!