请问在客户端如何获取appserver的当前时间值?急呀!!(100分)

  • 主题发起人 主题发起人 qanaky
  • 开始时间 开始时间
Q

qanaky

Unregistered / Unconfirmed
GUEST, unregistred user!
想得到服务器的时间值,在服务器中定义了一个方法method1,返回值为TDATETIME
类型,在客户端用下列语句调用:
serverdate:=Dcomconnect1.appserver.method1;
//其中serverdate为客户端定义的
一个Tdatetime类型值。
但运行时总是出错,错误信息是:method1:无效的方法调用,请问各位大虾该怎么办呀?
 
哈,只有这么一句吗??
详细点!
 
呵呵,想详细点是吧!好的!
我的服务器端方法定义如下:
type
Ttest = class(TRemoteDataModule, Itest)
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean;
const ClassID, ProgID: string);
override;
function Method1: TDateTime;
safecall;
public
{ Public declarations }
end;
源代码为:
function Method1: TDateTime;
var
servertime:TDateTime;
begin
servertime:=now;
Result:=servertime;
end;

客户端调用就只有这一句了!
 
出错信息?
会不会服务器还未激活,先设dcomconnect1.connected:=true;
 
我取得数据库服务器时间的方法有点不一样。
在SQL Server中,用 'SELECT timenow=GETDATE()'就可以取得系统时间了。
你也可以试试这个方法。
 
其实,只要在应用服务器端定义一个函数(发布),然后在客户端调用就可以了嘛!
 
是在view> type library ,然后在上面加的么。
好象上面只能加方法,
你是自已定义的罢,
这样不行,因为自已加的时候,lib自动生成的那个文件里没有这个方法。
当然就是无效的调用方法了。
如果你在library的界面上去加一个方法然后以参数的形式返回,
一定OK的
 
加一个返回参数就可以了
 
我想,你是自己加的函数,要是用view-typelibrary添加函数,应该不会出错。
从你的参数看来,你一定是自己加的函数,应为你的参数都不符合规定
 
同意yongjiang
 
都已经说的很详细了......
 
我所知道的从服务器返回值只能通过参数传递
具体为
1.服务器端方法这样说明
procedure method1(var s: WideString);
safecall;
2.在Client使用方法
var
s:string;
d:tdatetime;
begin
server.appserver.method1(s);
d:=strtodate(s);
end;
 
appserver在服务器上注册了吗?
 
多人接受答案了。
 
后退
顶部