在窗体中的每个按钮的事件中对数据操作完毕,都应该关闭连接吗?[后台是sql server,用ado记录集]
比如窗体上有很多按钮,每个按钮都是对后台数据库进行操作。比如conn.execute,rs.open 等等,我想问的是应该不应该在每个操作完毕后都关闭连接呢?即conn.close,看到书上说,连接用后就要关闭。可是问题是如果本窗体存在窗体级的记录集rs,如果conn.close,则这个记录集也无效了。所以我现在只能是在窗体的unload事件中执行conn.close,也就是说在这个窗体的存活期内conn连接一直连接,不知我这样做对不对呀?[即多种操作都共享这个conn连接,一直不关,有没有这么做程序的呀?]
是不是这样做有点偷懒呀?
真正规范的程序,应该如何做呀?
比如窗体上有很多按钮,每个按钮都是对后台数据库进行操作。比如conn.execute,rs.open 等等,我想问的是应该不应该在每个操作完毕后都关闭连接呢?即conn.close,看到书上说,连接用后就要关闭。可是问题是如果本窗体存在窗体级的记录集rs,如果conn.close,则这个记录集也无效了。所以我现在只能是在窗体的unload事件中执行conn.close,也就是说在这个窗体的存活期内conn连接一直连接,不知我这样做对不对呀?[即多种操作都共享这个conn连接,一直不关,有没有这么做程序的呀?]
是不是这样做有点偷懒呀?
真正规范的程序,应该如何做呀?
conn 因为如果你关闭了在下次使用时,在建立一次连接,就会耗费一次资源.
使得程序运行速度相当的慢, 你应该建立一个全局的 conn 对象, 直到程序生存期结束, 在关闭这个连接对象, 你的记录集按你的需要 根据连接 生成N多了
一句话:CPU是给用户用的,不是给我们这些程序员用的!
有两种说法:
1.整个程序只用一个连接,就象我的回贴一样.
2.随用随连,只要操作完毕就关闭连接,好象这种说法要占上风.而且据说.net已经设计成每次操作后就自动关闭连接了.我没学过.net所以不知对不对?
如果整个程序用一个从不关断的连接,那么以下问题如何处理:
1.如果网络出现问题,也就会导致这个连接变为无效,程序中如何检测呀,是不是每进行操作之前都要检查一下连接是否有效呀?[我是这么做的,不知是否是正确的方法]
2.多个记录集可能同时存在,都共享这个连接,会不会有冲突呀?
3.为什么很多高手都认同要随用随连呢?我也觉得那样麻烦,可是据说严谨的系统都是那么做的.
我没有经验,故只好请教大家了.
================
谢谢,做一个连接池如何做呀?我对这方面一点不懂,请指教.
一句话:CPU是给用户用的,不是给我们这些程序员用的!
===================================
曾经听一位老师说过,建立连接的过程与select相比是微不足道的.不知这种说法对否?
按您的说法,好象建立连接是很耗资源的呀?
所以想问问,建立连接所耗的资源有多大呀?对系统影响大吗?
===================
谢谢您关注我的问题,请问: 你说"一直连着的模式感觉会出现很多不可知的错误,我是不敢用",会出现哪些问题,能举例一二吗?
谢谢再.
====================
交流一下,我曾经也用过一个连接,整个程序到关闭时才关闭连接对象,但是每次操作前我都会检测一下连接状态,如果没有连接,则进行一次连接,否则就用已存在的连接。
不知有没有与我做法相同的网友呀??