我该任何写这个idl,请大虾们帮忙!!(200分)

W

wcp

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟是新手,请大虾们帮忙,先谢过!!
问题:
我要在客户端用delphi与应用服务通信,因为要跨平台,所以选用java+corba编写服务器;
现在我想在客户端传参数sql语句给corba服务器,要求服务器返回数据结果集和异常信息,
我该如何编写idl接口,又要怎么实现,请大虾指点,最好能给个例子!![:(][:(]
 
listen.
我也在做这些东东,老板非要服务器端编写成EJB的组件,客户端的程序大都是c或是DELPHI的,
东西,非常关注。
 
我没有做过真实的EJB,所以可能没有什么说服力...不过....
客户端传参数sql语句给corba服务器??
怎么会有这种设计呢?
如果这样的话,这个Corba的服务器不就成了一个SQL查询器了....
(SQL Broker??)
客户端根本不应该知道详细的数据库细节,他要做的事情就是发出命令,然后收取
查询结果。比如说,发命令:给我所有的用户列表,然后就等着接收这个列表...
 
怎么都没有人知道呀!难道就不能实现吗??? 给点建议也行。5555555555555
 
应用服务器采用EJB体系
客户端如果有非JAVA应用需求
一般采用RMI-IIOP
CORBA的IDL文件针对不同的客户做相应的编译就行了
 
请大虾门帮忙呀
 
都没人知道吗,555555555555
 
同意曹晓钢,怎么可以发sql到corba服务器呢?那要三层结构干嘛?
你如果一定要这样做,还不是很简单,定义一个字符串类型的接口参数,
不就传过去了吗?
我真是不明白。豆腐搞成肉价钱。
不是你的程序分成三个部分,有个客户端,有个app server,有个数据库就叫
三层结构的。你这样用corba,还不让omg的人气死。
 
小猪说的有理,有些功能如果用三层你的浪费,还不如不用。
直接传SQL语句,可是不好的,安全性有问题?
 
再补充一点,我以前写corba,appserver很少返回结果集,
不是不可以,只是我感觉这样得不偿失,我一般是把在
中间层的得到的结果集转换成一个类似二维数组的结构,
然后再传到客户端,在数据量不大时我感觉这样可以有很大的灵活性。
 
谢谢大家的指教,不过如果你的用户要求你查询的字段和条件由他自己定义,那么你又将任何
传送一个命令谓词来解决问题。你又如何定义一动态的数组来解决问题,你要知道一个系统所
涉及到的不是几个数据对象,而是几十个几百个数据对象,难道对于每一种查询都要定义一个
谓词和一个数据来解决问题吗?那要有多少种集合呀!
我所关心的主要是如何将一数据集用java将其转化为any类型的数据,以便前台delphi能够调用
希望大家继续讨论!!!!!!
 
to:小猪
我一般是把在
中间层的得到的结果集转换成一个类似二维数组的结构
对于你的方案:有个问题想请教,一般情况下,我的方案和你相同。但是遇到数据量大,或
者字段数据大于256个字符时,二维数组的处理能力不够 时,你的方案如何?
 
在三层中,在客户端出现SQL语句绝对是个失败的设计
如果客户端要出报表,我会传一个TRECORDSET回来
 
snjat:
我只用java写corba的。在java中好像没有256的限制。另外,好像delphi中的
string已经突破了256的限制了吧?我记得是这样的。
wcp:
我还是不太明白,客户端要求按任意条件查询是一个简单的要求,我看不出来这
需要传递sql到app server。至于返回客户端的结果集,应该是一个map对象,返回
该map对象的一个数组,而不需要理会客户究竟需要哪几个字段的值,这有client端处理
就行了。以上是我的想法。
 
有个地方不太理解,返回的如果是一个动态数组,我怎么接收呢?系统是怎么
为它分配空间的呢?
 
返回DataSet比较痛苦,得把脖子拴在一条绳子上(两边有一家的东西)
最好返回XML.
module QueryBroker{
interface Query{
Any Request(in string SQL);
};
};
 
wcp的意思应该是说
客户端的查询条件是即时生成的
所以才需要传参数
 
顶部