c/s程序,是整个程序用一个连接呀,还是每次操作都连接,操作完就关闭呀,哪种是正宗的用法呀?
-------------------------
我现在的作法是,启动程序时,建立一个全局的连接对象,在不退出我的程序之前,所有操作都使用共享这个连接对象.
但是现在发现网上很多人说这种方法不好,据说连接要即用即连,用后就关断.可是又说连接是很费资源的.每次操作都连接一次,也不好,我现在有点迷茫了,如何做才是对的呀,比如一些知名的商用软件,在这一点上都是如何实现的呀,请大家指教
-------------------------
我现在的作法是,启动程序时,建立一个全局的连接对象,在不退出我的程序之前,所有操作都使用共享这个连接对象.
但是现在发现网上很多人说这种方法不好,据说连接要即用即连,用后就关断.可是又说连接是很费资源的.每次操作都连接一次,也不好,我现在有点迷茫了,如何做才是对的呀,比如一些知名的商用软件,在这一点上都是如何实现的呀,请大家指教
解决方案 »
- 请问怎么把txt文件中的一列数据输入一个一维数组中
- 如何判断一个窗体是否处于最前面,并且向这个窗体发送组合键
- mdiform窗体的激活
- 一个有关byte()类型的问题
- 求手机号码段数据库,不是最新的也可以
- setPixel的问题?知道RGB分量值,而不会合成改函数所需的象素值!!
- 在线等待 vb属性窗体中“按分类序”下的表格是什么控件
- VB中怎么写构造函数?怎么给构造函数传递参数呢??
- 端口问题?
- 用installshield做打包,在默认目录下安装一部分文件,打算在SYSTEM目录下安装DLL,请问应该如何写?
- ActiveReport 2.0 的问题(数组)
- 有关Excel-VBA的小问题
我的软件:http://shareware.skycn.com/author_softlist.php?author_id=26655
当然会有个别现象就是客户端一直在操作,那就缓存起来好了千万不要太相信网络连接,万一闪断就有可能出现锁等其它乱七八糟的问题
如果绝大部分是浏览数据,那么只需要打开时读一次就可以关闭了,之后只是在需要看最新数据的时候再连接和刷新也无妨,就譬如你在看BBS,也只是加载页面的时候读了一次数据,之后你要看最新帖子的时候才需要刷新,这样对于数据库几乎没有什么压力。
如果你这个用户主要是更新数据的,那么几乎每一分钟都会向数据库提交新的更改,那样的话,一个长期的连接会更好。
而楼上说的则是另一个问题了,那就是在进行数据库操作的时候要尽量缩短读写的过程(这和是否长连接数据库每关系,并且两者都应该这么做)。
比如你编辑一条记录的时候,先EDIT,然后在用户向每一个TEXT里写内容的时候改字段内容,最后再等用户按下“确定”再UPDATE,那么可以说你的程序死定了,因为你永远无法预测用户将在这一个过程中消耗多少时间,中间计算机和网络出错的几率也无法预测。好的方法就是:用户按“编辑”或者“添加”的时候程序什么也不作,只是设一个标志,用来表明用户要进行的是编辑还是添加,用户更改TEXT内容的时候最多做点数据有效性验证,比如是否超过数据库字段长度或类型检测等等,只在用户按下“确定”之后才对数据库进行操作,此时就可以看前面的那个标记了,是编辑的就编辑,是添加的就添加,一个TEXT一个字段往里写,最后一个UPDATE,整个过程才零点零几秒都不到,要是这么短的时间机器或网络也出错,你可以考虑买彩票去了。
人家老外做软件的都是这么干的,你还不能说人家不厚道,对么。