码农甲

导航

2016年6月30日 #

JAVA反射实践

摘要: Java反射机制在我的理解当中就是下面几点: 1. 对一个给定的类名(以字符串形式提供)能动态构建一个对象实例 2. 对于任意一个类,都能够知道这个类的所有属性和方法 3. 对于任意一个对象,都能够调用它的任意一个方法和属性; 这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制 阅读全文

posted @ 2016-06-30 23:54 码农甲 阅读(262) 评论(0) 推荐(0) 编辑

2013年8月5日 #

DataSnap控件TDSServerClass属性LifeCycle生命周期管理(From李维)

摘要: DelphiXE2中的DataSnap中提供了三种不同的生命周期,开发人员可以在TDSServerClass控件的LifeCycle特性中设定,下面分别说明每一种生命周期的意义 1. Server:在整个DataSnap服务端中只会建立一个服务端类别对象以服务所有的用户端,只有当DataSnap服务器结束才会释放该服务类别对象2. Session:在DataSnap服务器中会为每一个连接的用户端建立一个专属的服务类别对象服务此用户端,移动用户端结束 或是关闭TSQLConnection的连接,此服务类别对象便会释放 3. Invocation: 在DataSnap服务器中没当用户端执行一次请求 阅读全文

posted @ 2013-08-05 15:23 码农甲 阅读(814) 评论(0) 推荐(0) 编辑

DataSnap修改数据ApplyUpdates出现错误:连接繁忙导致另一个命令

摘要: 最近准备尝试用DBExpress做个SQL Serer应用,在学习的时候发现一个问题使用DBExpress连接Sql server 2008 express使用以下控件SQLConnection->SQLTable->DataSetProvider->ClientDataSet->DataSource->DBGrid修改数据后执行 ApplyUpdates,出现下列错误SQL State: HY000, SQL Error Code 0: 连接繁忙导致另一个命令请在执行前把 SQLConnection Close同意楼上。最好是使用高版本的DBX 阅读全文

posted @ 2013-08-05 10:46 码农甲 阅读(682) 评论(0) 推荐(0) 编辑

DelphiXE2 DataSnap开发技巧收集

摘要: DelphiXE2 DataSnap开发技巧收集作者:2012-08-07 09:12:52 分类:Delphi 标签:作为DelphiXE2 DataSnap开发的私家锦囊,在此收集一些DataSnap开发有关的技巧及注意事项。有此是网站看到的,有些则是自已开发中遇到并总结出来的。1、在布置ISAPI方式的服务器程序时作为DelphiXE2 DataSnap开发的私家锦囊,在此收集一些DataSnap开发有关的技巧及注意事项。有此是网站看到的,有些则是自已开发中遇到并总结出来的。1、在布置ISAPI方式的服务器程序时,要“允许”“所有未知ISAPI扩展”的Web服务扩展,并且还要重启IIS服 阅读全文

posted @ 2013-08-05 10:42 码农甲 阅读(1657) 评论(0) 推荐(0) 编辑

Delphi2010中DataSnap高级技术(7)—TDSServerClass中Lifecycle生命周期三种属性说明

摘要: Lifecycle 三种属性: Session、Invocation、Server这三种属性都用在什么情况,有什么要注意的事项,Delphi2010中罕有说明。如果乱用这三种属性,你的服务程序有可能崩溃,数据混乱,内存占用大,效率低等问题!下面我对这三种属性的使用环境逐一介绍:1. Session说明:这是delphi2010中默认属性,也是delphi推荐设置。Session会为每个来自客户端的链接,建立一个线程来实例化。实例化是什么概念呢?就是这个线程把所有你将要用到的类、函数等等都建立好了,等待你客户端直接使用。这个线程和实例化并不释放,直到客户端中断连接。如果有300个客户端,那么你的 阅读全文

posted @ 2013-08-05 09:41 码农甲 阅读(412) 评论(0) 推荐(0) 编辑

DataSnap 2009 系列之三 (生命周期篇)

摘要: DataSnap 2009 系列之三 (生命周期篇)DataSnap 2009的服务器对象的生命周期依赖于DSServerClass组件的设置当DSServer启动时从DSServerClass组件读取LifeCycle属性的值注意:LifeCycle的值由于在启动时就已经读取 启动后再修改LifeCycle的值将没有任何效果LifeCycle属性的值可以是以下三种字符串之一1.Session该选项为默认设置每个连接都会建立一个独立的服务器对象为客户端提供服务,服务器对象在连接关闭后释放因此多个客户端访问的是不同的服务器对象,是线程安全的2.Invocation对于每次服务端方法调用建立一个独 阅读全文

posted @ 2013-08-05 09:40 码农甲 阅读(406) 评论(0) 推荐(0) 编辑

datasnap的初步 生命期LifeCycle

摘要: datasnap的初步 生命期LifeCycleTDSServerClass有一个属性LifeCycle,这个属性有三个值,很好理解1.Session,这是默认值。就是一个连接,一个Session,一个Session的意思就是连接上来后,服务器端就创建一个DSServerClassGetClass里返回的PersistentClass一个实例,并一直保持到连接断开,所有这期间的ServerMethod调用,都是这个实例的调用。所以这是线程安全的。2.Server顾名思义,就是全局就一个PersistentClass的实例,所有的连接Call上来的ServerMethod都是这唯一实例的调用,单 阅读全文

posted @ 2013-08-05 09:39 码农甲 阅读(514) 评论(0) 推荐(0) 编辑

2013年7月5日 #

多层数据库应用基于Delphi DataSnap方法调用的实现(一)返回数据集

摘要: 从Delphi 2009开始,DataSnap技术发生了很大的变化,并在Delphi 2010和Delphi XE的后续版本中得到了持续的改进。Delphi 2009之前的DataSnap,虽然也实现了对中间层的方法调用,但那是基于COM技术的,实现起来比较麻烦,而且最关键的,是不能直接返回数据集(TDataSet)。如今,基于JSON的DataSnap,已经脱离了COM的束缚,可以很方便地直接返回数据集。我们在开发多层的数据库应用时,就可以采用全新的方式来进行,即客户端的所有数据查询和更新,可以被分割成对中间层多个方法的调用来完成。这种方式带来的最直接效果,就是客户端在完成一个完整的业务操作 阅读全文

posted @ 2013-07-05 16:47 码农甲 阅读(1183) 评论(0) 推荐(0) 编辑

2013年7月3日 #

Delphi2010 DataSnap入门

摘要: DataSnap到了Delphi2010有了很大的变化,已经可以完全抛弃DCOM之类的东西了,在以前版本中建立一个DataSnap,需要使用DCOMConnection或者SockConnection来连接到服务器,而在Delphi2010中提供了一个新的连接组件:TDSProviderConnection,可以更方便地来连接服务器.先来学习一个简单的DataSnap:新建一个工程,在Delphi Project中选择DataSnap Server组,然后选择其中的DataSnap Server,点击确定,然后选择缺省设置即可.系统会生成一个工程框架.其实现在你什么代码都不用写,就已经建立好了 阅读全文

posted @ 2013-07-03 17:11 码农甲 阅读(1843) 评论(0) 推荐(0) 编辑

delphi中midas是什么

摘要: Delphi中MIDAS到底是什么呢?和他相关组件是什么呢? MIDAS(Multitiered Distributed Application Services)多层分布式应用服务. Delphi所提出的Multi-Tier结构是把原来的Two-Tier前台应用程序内的dbExpress,ADO,BDE,SQL Link,DataMoule,拿到另外一台NT服务器(就是所谓的应用程序服务器),而前台程序只剩下一个可执行文档及MIDAS.DLL,而移到NT服务器上的DataMoule则变成一个COM程序(Remote DataModule). 注:前台一定要把MIDAS.DLL发布到系统目录下 阅读全文

posted @ 2013-07-03 09:23 码农甲 阅读(640) 评论(0) 推荐(0) 编辑