关于Tclientdataset的bug

Tclientdataset最近用的挺多的,在二层开发的时候可以做内存表,三层优点就不复述了。不过也有几点不好,dcom好像只能用在本机,socketconnection在internet网上也很不稳定,使用完全比不上。net的remoting那么方便,可以随意创送对象。
言归正传
1 Tclientdataset各个版本功能比较混乱,手头上有5,7,10等版本,5,7在中间层修改了字段数值并返回给客户端时存在问题。(比如由中间层生成流水号返回客户端,流水号问题我另外撰文)。
2  Tclientdataset.filter不支持中文测试发现filter条件中如果中文字数为双数时会过滤不到数据,解决方法是用onfilter事件来过滤.ado没有这个问题,borland对于unicode的支持之差劲让人深恶痛绝,在gb2312和big5上造成的困扰一直无法解决,甚至延伸到xml,webservice等方面,用ms开发工具则完全没有这个顾虑。
3 在ApplyUpdate(-1)提交后的数据后,Tclientdataset.updatestatus仍然会是insert状态,直到10版本还是没有改成,没办法每次提交还要再执行clt.edit;clt.cancel来刷新状态;refresh方法重新获取数据也是可以的,效率问题.如果取消提交数据后,recordcount=0,数据集的状态还是Insert状态,这个没有解决,还好影响不大.

附   DCOM配置,摘录自网上,再次提醒,DCOM只能在局域网使用,而且我按照它的方法配置,折腾了一个上午都不成功,还把win2003的服务器搞的崩溃了(很多服务都报告DCOM没有权限),所以警告大家慎用.Borland在分布式应用上落后太多了啊,没落的贵族.
    如果在Windows   NT环境下正常运行应用服务器,必须进行DCOM配置。配置方法如下:      
    1.运行NT服务器上的dcomcnfg程序,进行DCOM配置。      
    2.进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。      
    3.进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。      
    4.在常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。      
    5.将常规页面中的身份验证级别改为“无”。      
    6.位置页面中选上“在这台计算机上运行应用程序”。      
    7.将安全性页面设置中,均选择“使用自定义访问权限”,编辑每一个权限,将EveryOne加入用户列表中。      
    8.身份标识页面中,选择“交互式用户”。      
    9.NT的GUEST用户不能禁用。  

posted on 2007-05-11 18:37  shappy  阅读(904)  评论(1)    收藏  举报

导航