tempad
Readygo技术搜索引擎 >>软件工程 >> 关于数据库连接的讨论

关于数据库连接的讨论

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 7:16:48

关于数据库连接的讨论

楼主eee(eee)2003-06-30 19:41:48 在 VB / 数据库(包含打印,安装,报表) 提问

请问对于ADO的连接的建立和消毁是在整个工程里建立,还是在类里面,还是在方法里也就是建立工程公用变量,类变量,还是函数变量。也就是指连接一直保持着,还是即有即开,做完就关?在实际的应用中这几种方法都存在。请大家讨论,有理者就给分。 问题点数:0、回复次数:16Top

1 楼Athickhead(穿着三角裤到处跑不叫裸奔)回复于 2003-06-30 20:18:12 得分 0

建立数据库联接是在模块中建的。。。在最后关。连数据库太费时了  
   
  操作表一般是在事件中的。。。做完就关掉。。Top

2 楼pp4u(方便面(当天结贴))回复于 2003-07-01 08:05:08 得分 0

还是一直连着比较好,省得开开关关的。不更新就用离线数据库。Top

3 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-07-01 08:56:08 得分 0

ADO  
  对于用本机代码编写的应用程序,ADO为   OLE   DB   数据提供程序提供基于   COM   的应用程序级别接口。与   ADO.NET   相似,ADO支持各种开发需要,包括使用与关系数据库和其他存储区中的数据的活连接来创建前端数据库客户端和中间层业务对象。而且,像   ADO.NET   一样,ADO   可构建客户端记录集、使用松耦合记录集、处理   OLE   DB   的数据整形行集合。  
   
   
  性能   ADO.NET   和   ADO   的速度都非常快,但是它们在使用   OLE   DB   数据源时,在应用程序和数据提供程序之间插入了一个额外的抽象层。如果您的后端数据库是   Microsoft   SQL   Server,并且在用托管代码进行编写,则   ADO.NET   SQL   Server   .NET   数据提供程序会提供最佳性能,这是由于它跳过了   ADO   和   OLE   DB   所造成的系统开销并通过网络驱动程序与服务器直接通讯。  
   
  Top

4 楼jlmugua(【 木瓜软件工作室 www.mugua.net 】)回复于 2003-07-01 10:16:53 得分 0

大家好,本人是一名VB程序员,干了两年VB编程,不能说是高手,但也积累了不少相关编程经验。《医药进销存管理系统》是本人自认为最为代表性的VB管理软件,集医药进销存、人事工资、报表一体化设计,并附有数据开发流程图。  
  对初学者尽快掌握VB编程也有一定帮助。  
  收费原因:1、网上的免费源码多如牛毛,但一调试就出现很多bug,不利于初学者。  
                      2、源码标有详细的注释,代码段结构清晰,这也是本人的编程风格。  
                      3、你只需改动一小部分,就可以将其上市,为您带来经济效益。  
                      4、价格低廉。有安装包可以安装一下,试其效果。  
  ◆域名:http://muguanet.126.com  
  【本人不常来csdn,请到留言板上留言。】详细联系方式请看网站的下载中心。Top

5 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-07-01 18:10:23 得分 0

ADO是面向连接而设计的,所以一般应用程序在使用过程中一直保持连接是可以的  
  我的VB6编写的软件中,连接是在模块中建立的,在程序运行过程中一直打开(因为客户端数量不多,少于50)。  
   
   
  如果你是WEB程序或者用户数量很多,则建议你不能一直打开!  
   
  Top

6 楼smuzy(smuzy)回复于 2003-07-01 18:37:02 得分 0

我写了一个COM  
  数据库连接在工程内打开的,一个公共变量Conn  
   
  recordset在Sub(function)内定义,现用现写,都是局部变量Top

7 楼amortal(7086)回复于 2003-07-01 18:45:13 得分 0

觉得如果不是和数据库联系很紧的可以关掉!  
  虽然常常打开关闭很麻烦,但是这样子干净!  
   
  而且如果数据库是排它的情况下,就只能关掉了,不然人家就没法用了!呵呵Top

8 楼smuzy(smuzy)回复于 2003-07-01 18:47:58 得分 0

数据库有排他的情况吗?  
   
  我还不知道呢  
  我只知道表能够锁定Top

9 楼smuzy(smuzy)回复于 2003-07-01 18:48:34 得分 0

数据库有排他的情况吗?  
   
  我还不知道呢  
  我只知道表和记录能够锁定Top

10 楼aiguo25(青春无悔)回复于 2003-07-01 20:29:32 得分 0

一直保持着,否则,你想用的时候,在接,就会费很多的时间.Top

11 楼wdwd05(学.NET,从头开始)回复于 2003-07-01 21:02:19 得分 0

关注~Top

12 楼eee(eee)回复于 2003-07-09 23:01:29 得分 0

可能我没有表述清楚这个主题,我是指采用COM+的方式,在COM+是基于MTS的,MTS有对象池和连接池的概念,这样的话整个ADO的连接与断开的速度是非常快,如果以调试的方式来观察,这几乎与赋值语句的速度是一样的。Top

13 楼eee(eee)回复于 2003-07-22 11:04:31 得分 0

没人关注吗。其实这个问题对于COM编程很重要呀。Top

14 楼padfan(胖有)回复于 2003-07-22 11:26:54 得分 0

我也正在为这个事情烦恼着!究竟是一直打开好,还是连一次,关一次好呢?Top

15 楼strongfisher(Haiwolf)回复于 2003-07-22 13:41:22 得分 0

建立数据库联接是在模块中建的  
  在最后关。  
   
  操作表一般是在事件中的  
  做完就关掉Top

16 楼eee(eee)回复于 2003-07-22 14:14:42 得分 0

现在基本认为在MTS对象池中的ADO的连接是即时打开,即时关闭。也就是说连接和释放都放在函数中,而不是放在类,甚到工程模块里。  
  想问问有没有谁在具体的应用中就是这样实现的。Top

责任编辑: efish 参与评论 查找更多:
相关文章
请问:在使用Bitblt()时,如何使背景色透明? 请问:在使用Bitblt()时,如何使背景色透明?
oracle 9i的客户端可以连接oracle 8.0.0.5的服务器端… oracle 9i的客户端可以连接oracle 8.0.0.5的服务器端吗?
请问哪里有关于DBGrid的比较系统的使用教程? 请问哪里有关于DBGrid的比较系统的使用教程?
含有LIKE的SQL语句在程序里应该怎么写啊? 含有LIKE的SQL语句在程序里应该怎么写啊?
高分求救,怪问题,关于数据库访问驱动!! 高分求救,怪问题,关于数据库访问驱动!!
hi,请大家帮帮忙,关于,windows窗口的拖动问题~~~~~ hi,请大家帮帮忙,关于,windows窗口的拖动问题~~~~~
我应该学Flash 5还是MX或者直接学MX2004? 我应该学Flash 5还是MX或者直接学MX2004?
急问:SQL如何实现两个表的笛卡儿乘积(有公共字段)? 急问:SQL如何实现两个表的笛卡儿乘积(有公共字段)?
菜鸟问题:怎么简单的实现机器之间的相互通信! 菜鸟问题:怎么简单的实现机器之间的相互通信!
为什么我的IE每次打开都是最小化的? 为什么我的IE每次打开都是最小化的?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎