在使用BDE开发三层数据库时,有些人将TDatabase组件放到服务器端的主窗体中,有些人将TDatabase放到远程数据模块中,两种做法的优缺点是什么?哪种做法更合理?请教各位。
解决方案 »
- 在delphi中如何快捷复制一个窗口(包括窗体里的所有组件及相应程序)
- IOCP发送处理问题
- 高手给点建议,应该用三层还是二层?
- 用findfirst查找文件后,无法用loadfromfile打开找到的文件,提示cannot open....
- 有关dbExpress的数据库更新操作问题
- 使用locate命令出错,请进来看看!
- 紧急求助:如何解决在(50万条)数据库中对query搜索出来数据进行Edit,Post特慢的问题
- 罗刚事件当晚录音http://www.91pop.com/upfile/31_1012.mp3
- 我要用sql创建access数据库表,要求创建一个自动编号字段.怎么做?在线等...
- Delphi中使用*.chm帮助
- 我用delphi7按运行的时候出错.怎么解决
- 两台机器通过拨号上网,是否能够通过一台机器读取另一台机器的数据库,用SocketConnection(内详)
三层用这个.
数据模块中,在三层当中也是这样.
1\连接过程的区别:
两层:Ado直接连接Dbms,进行查询和更新
三层:客户端加密SQL指令---发送---服务端接受解密----通过线程进行临时连接DBMS----查询到结果---转换成流并加密压缩---发送---客户端接受解密解压----恢复到db控件中 三层比两层多出了若干中间的环节,所以肯定了三层的速度没有两层的快,这是早就定论的.
对查询后得到的本地数据集进行更新时,不能像两层直接更新了,三层除了更新本地的,同时还得发出指令更新远程数据库. 2\Adocon容易出现的问题
三层中使用Adoconneciton,通过多个线程建立连接,在使用同一个ADocon时是不稳定的,必须为每个线程建立一个adocon,这样由于登录验证的时间,所以更加影响了执行速度.而两层是早已连接上了的,且不会出错. 3\数据库安全问题
两层是通过加密符对Ado访问口令的加密
三层因为不涉及到数据库口令,但TCP通讯时少不了加密,否则,只要连接上IP:PORT,就可以发送指令执行了,
两种加密都在客户端中,对于反汇编来说,安全性是差不多的了 4\经常谈到的维护问题
提到三层,多数人认为可以减少维护量,把所有的业务逻辑放在中间层,便于集中维护.
大家想一下,现在有多少人真正做到客户端无逻辑运算的,这种做法只是学着B/S,而浪费客户机的资源.
对于C/S的,他与B/S有着很大的区别,就像QQ也不可能做到逻辑在服务器,维护更新可以通过自动升级来完成. 5\开发周期
三层必竟是多了一层,好多内容都是拆分开在两端同时开发,代码的完整性及维护没有两层简单,开发周期也长 6\三层的优势
由于我水平有限,至目前所理解的三层优势,只是可以减少 两层adocon连接的个数,从而减少服务器需分配的资源,对于两层,当连接数过多时,数据库是承受不了的,三层调用数据后可以释放连接,不像两层始终占着. 说了这么多,不是为了说三层不好,而是两层当数据环境在一定范围内是有优势的,而三层则是突破这个数据环境的优势.
就好比,一共有10个客户端,三层的优势是绝对不会超过两层 这个是要看环境进行权衡