摘要:
1)作为一个服务程序,如果不限制客户端访问数量,后果将是很可怕的。如果有人恶搞,服务器不堪重负,内存将耗尽,最终服务器将宕机。如何限制访问者的数量呢?我们可以设置一个变量,来记录来访者的数量,如果超过我们既定的数字,那么后续的连接服务器请求,都将被断掉。2)限制了访问数量,但是如果不做密码身份认证,无关的人员也将能登陆服务器!解决办法是客户端传入用户名和密码,如果用户名和密码不正确,连接将被挂断。在客户端的SQLConnection1中driver分类的username和password属性设置好用户名和密码。3)尽量不要设置DSTCPServerTransport1的Maxthreads属性 阅读全文
摘要:
Lifecycle 三种属性: Session、Invocation、Server如果乱用这三种属性,你的服务程序有可能崩溃,数据混乱,内存占用大,效率低等问题!下面我对这三种属性的使用环境逐一介绍:1. Session说明:这是delphi2010中默认属性,也是delphi推荐设置。Session会为每个来自客户端的链接,建立一个线程来实例化。实例化是什么概念呢?就是这个线程把所有你将要用到的类、函数等等都建立好了,等待你客户端直接使用。这个线程和实例化并不释放,直到客户端中断连接。如果有300个客户端,那么你的服务器将会有300线程和实例,对服务器硬件和内存是个考验。适用环境:这个设置是 阅读全文
摘要:
//author: cxg{ For example :procedure TForm1.ComboBox1Change(Sender: TObject);begin SetActiveLanguage(ComboBox1.Text);end;procedure TForm1.FormCreate(Sender: TObject);begin ComboBox1.Items.AddStrings(SearchLanguagePack);end;}unit uLanguage;interfaceuses Windows, Messages, SysUtils, Classes, Graphics 阅读全文
摘要:
有很多朋友认为,datasnap 2010 只可以与DBX 捆绑在一起,而如果是想用ADO的话,哪就得放弁DATASNAP 2010 了,这个想法是错误的,datasnap 2010 是调用了DBX 库中的一些相关的东西,也就是我们如果用ADO来连接目标库的话,哪么我们还是需要USES DBX相关的单元,但是这并不影响我们使用ADO新版本也不是完全都如意,如果你还在用SQL SERVER 2000的话,哪么你想用DBX的话,你的客户端必需要装到sql server 2008的客户端,否则,一系列的错误,会搞的你不知是什么一回事!用了delphi 2010 的新的datasnap后,我们可以对 阅读全文