我的毕业设计用VB做界面,VC连接数据库,据说是用到了COM技术可是,COM对我来说有些深奥!又找不到合适的参考书!
请大家给我介绍介绍COM连接数据库的好处,或者提供一些相关文章书籍资料!
用作毕业论文!
谢谢!
100分!!!!!!!!!

解决方案 »

  1.   

    如果仅仅是用VC连接数据库,意义不太明显。
    如果要发挥COM的优点的话,最好能实现数据库查询、添加、更新和删除等功能的封装
      

  2.   

    “如果要发挥COM的优点的话,最好能实现数据库查询、添加、更新和删除等功能的封装“我的意思就是这个,封装的好处有哪些呢?
    vb连接数据库时同时连接用户数会有限制,COM的速度好像慢一点?
    另外一点就是利于以后的程序升级,扩充功能?还有其他好处吗?
      

  3.   

    COM组件的优点:
      1、实现多人协同开发
      2、VB界面与VC组件实现物理上的分离
      3、简化VB的代码编写
        4、将C/S结构转为B/S非常容易
       
      

  4.   

    抓紧啦
    时间快不够了
    如果你用com
    还要新学的话
      

  5.   

    COM特性:
    1,语言无关性
    2,进程透明性
    3,可重用性
    你用VC可以直接包装一下ADO嘛,呵呵,这样就可以绕开ODBC API了,比较简单些
    实在不行给我发Mail。
      

  6.   

    基本不同意楼上的观点
    俺认为在这样的系统中COM的优点不大,缺点不小
      

  7.   

    我觉得要把系统搞大,搞复杂,用com做中间层还可以,小系统要经常更新的用com可以。
      

  8.   

    我的毕业设计是一个较大的管理系统的一部分,是给一家企业用的,至于com,有代码可以参考做起来倒是没难度,只不过我想在毕业论文里写一些com的东西,要不显得太肤浅!:)确实在编写过程中,我觉得它比直接用vb思路更清晰,编写更方便,可能在整个系统调试阶段会有很多麻烦,但是对以后的维护和代码重用有好处!
      

  9.   

    大家能给我推荐一些资料吗?连COM最基本的东西我都不知道,现在只会应用而已!
      

  10.   

    是用到com的组建吧,一般,学校好像不太会涉及到com的
      

  11.   

    gz
    潘爱民的com原理和com+两本书对初学者那本好,可以直接学com+吗?能否推荐一两本com类的别的好书?
      

  12.   

    abrams
    我还不是太清楚,com 和 com组建?有什么区别?有明显区别吗?
      

  13.   

    理解COM要求有很好的C++基础,不过现在都.NET了,再学COM意义不大。
    连接数据库也没有必要用VC来实现,VC主要用来实现业务逻辑 ,可以将业务逻辑封装成COM组件,或者ActiveX,供VB调用。VC连接数据库也是使用ADO或OLE_DB,DAO等等技术,VB也是使用DAO,ADO,而且VC显然比VB要麻烦。
      

  14.   

    VC连接数据库,其实与COM内幕的东西关系不大
    只不过用ADO的时候,ADO本身就是一种COM组件.其实平时使用ADO并不需要了解太多COM的东西
    只是需要加几个语句而已,不过强烈建议把COM学好COM -- 组件对象模型,是一系列规范的集合,也是一种思维方式
    COM组件 -- 根据COM的特点,具体实现后东东,有具体的功能和目的
      

  15.   

    vb里面ADO不就是微软写的组件么?
      

  16.   

    COM是一种二进制代码重用标准,与具体语言无关,COM有自己的标准数据类型,与其它语言的数据类型类似
      

  17.   

    俺回答另外一个帖子的帖子,写完后自我感觉比较得意,在这里也贴出来,混点分:)从规范上来讲,二进制兼容,位置透明性,接口的唯一性等等特性,方便了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实现
    要考虑是否有必要了,还要考虑开发成本了。如果你不需要其他开发语言,开发环境也来使用你已经封装的功能的话,那么二进制兼容就没有多大意义。
    如果你不用分布式,那么位置透明性也失去意义
    如果你的东西不与操作系统的其他组件、应用等进行操作配合,那么接口的唯一性也没有什么意义了
      

  18.   

    听我的导师说,我做的系统用到的技术是比较先进的,为什么有很多人说用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连接数据库的区别和好处?
    谢谢!
      

  19.   

    你本身建立一个COM,同时你也在使用COM(即ADO)。你可以在你的COM中实现业务逻辑,而ADO只是用来与数据库打交道。
    VC中与VB连接数据库的区别主要是效率问题。当然,VC比VB要复杂得多,你需要知道很多的COM知识,而用VB则可以什么也不知道。
      

  20.   

    用组件进行数据库访问,主要是把数据的处理跟数据存储和数据表示分离,在此组件亦称中间件,属于三层c/s结构的应用逻辑层,不过用组件确实能学到很多东西,尤其是和专业课联系紧密,如数据结构、面性对象的所有概念、编程思想、软件工程、操作系统等,对Windows编程也是非常有好处的,爱好组件技术的同志们,加油阿
      

  21.   

    COM当然是有必要的,不只是Windows下面才采用这样的结构
    在其它系统中可以使用CORBA来做三层应用
    基本上COM与CORBA目的是相同的
    直接用VB连接也可以实现功能上的要求,但是如果需要变化,那么你必须修改VB代码与数据库之间的接口
    如果中间多了一个中间层,那么你的应用程序不需要修改,只需要修改组件的内容,模块性更强强强强,另外,如果你的组件接口相当灵活,完全可以不断扩充
      

  22.   

    COM的思想不会过时!要说时髦UML好象...
      

  23.   

    谢谢大家的回答!前一段忙着做程序,也没来看看!
    今天准备过来结贴的!
    在应用com的过程中,除了com本身的技术上的优势外,我确实也体会到了组件思想的好处,再修改程序,修改数据库的时候,确实要方便很多!只不过,我对com的理解仅限于应用,遗憾!