后台oracle +中间 webservice(java)+客户端 delphi,开发过程中的问题。(300分)

  • 主题发起人 主题发起人 apex
  • 开始时间 开始时间
A

apex

Unregistered / Unconfirmed
GUEST, unregistred user!
由于中间层的webservice不是用DELPHI来写的,所以不能用SOAPCONNECTION控件结合clientdataset控件来操作数据。所以,根据目前的集成方法,客户端该怎么写,才能通过clientdataset控件来操作数据库?
最好能给个例子。
有最简洁的方法实现者,我给500分。(剩余的200分另开贴子送。)
我的邮箱:hy@hzcnc.com
 
使用weblogic做服务,写好相应的ejb组件连接后台数据库。
前端继承 cds,编写能够与中间层通讯的组件 (数据的传递采用xml格式)
我们现在正在开发的程序就是采用这种模式的.
weblogic很稳定地说.
 
不过我们做的有一个缺点,就是还不能传递图片等数据
 
to saga:这样做的方法很烦琐。
 
to saga:
那么到底怎么与中间层通讯?通过什么通讯呢?
 
不会很麻烦阿
 
楼上的各位,对不起,是我自己看错了
ide里面的确执行了else
后面的。
sorry all
 
最近这种贴字很多啊
其实浏览数据很简单,用中间层形成符合Cds数据包的xml,我具体看过了,cds数据包的
xml倒是并不复杂,然后Webservice也好,Corba也好,HTTP也好,传给客户端,只要
把Xml字符串传给clientdataset.xmldata(只有d6,d7有)就可以了,
麻烦就在更新数据,要参考Midas本身的ApplyUpdates机制,麻烦啊
 
to shiningplus:
能给个例子吗?
 
用httprio连接啊,不过XML字符串不能直接给xmldata的,因为格式不一样
 
有谁能系统的回答一下啊?不要神龙见首不见尾的。
 
请各位大侠帮帮忙,用delphi怎样在注册注里建一个项呢?我用writestring建一个键就行建一个项就不行。
 
跟我们现在的系统是差不多的,只是我们用sqlserver2000
所有底层库方面都是我一个人做的,可以说现在用起来是很方便的.不用考虑底层的东东.
TClientDataSet:使用xml包装数据集以字符串方式在webservices中传递即可.
我为了省事,直接使用了DataSnap的XML格式,所以在客户端没有什么需要做的,
在服务器端做了几个类处理这个,到最终类时用起来很简单了
public static String getRsText(ResultSet resultSet, int startRow, int count) throws
Exception {
StringConvResultToXml scrt = new StringConvResultToXml();
//另外一个功能一样,叫DomConvResultToXml,不过效率不及这个高
return scrt.convExceute(resultSet, startRow, count);
}
一句话就可以将一个ResultSet转为DataSnap XML:
rsText = StringConvResultToXml.getRsText(rs,0,-1)
在客户端 ClientDataSet.XMLData = rsText;就行了
反过来也一样,可以传递ClientDataSet到java服务器端,我包装了成一个ClientDSObject类,提供了数据集同样的操作方式.
可以处理绝大多数字段类型,包括Image,uniqueidentifier,timestamp,text,identity等,这个关键是研究透DataSnap xml的格式,我中间就出了几次小问题,现在已经算得上完美了
在java服务器与客户端中间,最好只使用String,int,double等标准类型以及数组,只有这些才容易被soap处理.
 
to lynu:
能不能将JAVA和DELPHI客户端的代码发个给我啊,我研究一下哈。谢谢了!
email:hy@hzcnc.com
 
JAVA和DELPHI客户端的代码就是上面那样的了,也没什么看的,都是一句话就变成了XML字符串或一个ClientDSObject对象.
很抱歉,底层库是不可能给你的. 这个可是劳动成果[:D]
另外因为用不起weblogic,我们用的是Tomcat+Axis(jb8中带的就是Axis)
 
由于没有例子,所以只能从300分里给分了。
 
多人接受答案了。
 
后退
顶部