远程数据模块怎样得到客户端的名称和IP

neo40 2003-10-16 01:22:06
我用DataSetProvider、DCOMConnection、ClientDataSet这三个控件做的三层,
请问远程数据模块怎样得到客户端的名称和IP,能不能给段代码?

DataSetProvider和ClientDataSet之间能不能传递字符串,或者非记录集数据,
我只是想知道客户端做了什么操作,如插入、删除、修改,并且知道对哪个表操作了
操作的记录的ID号,以字符串方式传回去。

另:不用CORBA

如有代码小弟不胜感激,要分的话我在立新帖。
...全文
55 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqdmafeng 2003-11-11
  • 打赏
  • 举报
回复
正在学习中......
XXSingle 2003-11-04
  • 打赏
  • 举报
回复
正在学习分布式,不能帮楼主的忙了
akoan 2003-11-04
  • 打赏
  • 举报
回复
有没有考虑过服务端是没有状态的
这个问题我不知道
帮您 顶
neo40 2003-11-04
  • 打赏
  • 举报
回复
谢谢各位支持
neo40 2003-11-03
  • 打赏
  • 举报
回复
楼上的,我也想知道这个问题
lbs 2003-11-03
  • 打赏
  • 举报
回复
SOCKETCONN1.APPSERVER.方法名()
这种方法可以,但是存在一定的缺陷:
系统在客户端连接服务器的时候,一般同时打开数据库连接,以保证客户端的连接成功;之后才能调用 SOCKETCONN1.APPSERVER.方法名() 过程,这时传递入IP地址。如果我们要限制IP地址的话,只有调用SOCKETCONN1.APPSERVER.方法名()过程。程序在设计期不能够实现,也就是如果我们要用到IP的限制的程序,在设计期和应用期用不同的程序,请问能不能在客户端连接的同时将IP地址传递,以实现应用服务器在设计期可用。
neo40 2003-11-03
  • 打赏
  • 举报
回复
up
neo40 2003-10-29
  • 打赏
  • 举报
回复
各位,支个声呀!
neo40 2003-10-27
  • 打赏
  • 举报
回复
楼上的各位,请问DCOMConnection1.AppServer.方法名(参数);调用远程服务器方法是动态连编会使客户端运行的非常慢,能不能提供一个静态连编的方法,望高手指点!

注:
我曾引用远程服务器生成的那个TLB类,如:
interface
uses
...,Project1_TLB,...;

然后定义一个类的实例
aa:IMy_Server;

再调用方法
aa:=CoMy_Server.CreateRemote('192.168.0.109');
if aa.方法名(参数) then showmessage('服务器登陆成功!');

这样的话会多建立一个服务器的线程,造成不必要的资源浪费,而且每建立一个实例都创建一个线程
Erice 2003-10-23
  • 打赏
  • 举报
回复
在你的远程数据模块中定义N各接口方法,在客户端调用这些方法;如:
SOCKETCONN1.APPSERVER.方法名()
在方法中传递IP等信息!
2312 2003-10-23
  • 打赏
  • 举报
回复
客户端登录的时候传过去
neo40 2003-10-22
  • 打赏
  • 举报
回复
maozefa(之源)如你所说,如何在tlb窗口中的左边树中的接口结点中加入新的函数,而不是方法
zfalcon 2003-10-22
  • 打赏
  • 举报
回复
如maozefa(之源)所说定义一个Function去得到,至于Client端什么时候调用这个Fucntion主动权在你,一般在Login时。
softcai 2003-10-19
  • 打赏
  • 举报
回复
上楼说的有道理,可能还要调用API函数获得那个字符串吧。
huojiehai 2003-10-18
  • 打赏
  • 举报
回复
一般客户端都要调应用服务器的函数登录,登录时把客户端的IP传过去就是了

好像只能这样做吧
mycsdnid 2003-10-17
  • 打赏
  • 举报
回复
在客户端取得IP再传到应用服务器上即可。
Miracle 2003-10-17
  • 打赏
  • 举报
回复
billy_zh(牛仔):
1、这样做完全不能保证客户端传送信息的真实性

2、同意,这是标准的解决方案。
billy_zh 2003-10-17
  • 打赏
  • 举报
回复
1。可在远程数据模块定义一方法,客户端调用此方法将名称和IP传过去。

2。可以传递数据,DSP和CDS都有以下三对事件:BeforeGetRecords/AfterGetRecords,
BeforeDataRequest/AfterDataRequest, BeforeApplyUpdates/AfterApplyUpdates
在这些事件里都有一个共同的参数OwnerData, 它就是用来传递自定义数据的。
如果想知道客户端做了什么操作,可在DSP的AfterUpdateRecord事件(每条被处理的记录都
执行此事件)内记录下操作的类别和相关的记录信息,然后在AfterApplyUpdates事件内设置
返回值。
playvc 2003-10-17
  • 打赏
  • 举报
回复
关注
billy_zh 2003-10-17
  • 打赏
  • 举报
回复
to Miracle(秋水长天)
传送数据时可以加密!
加载更多回复(6)

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧