接口问题请教(100分)

  • 主题发起人 主题发起人 wangxianjiang
  • 开始时间 开始时间
W

wangxianjiang

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个webservice程序,现在想在接口A中定义一个接口B类型的全局变量F,实现下列目的:
1、当程序调用A接口时,在接口生成事件中生成全局变量F,以便调用B接口时不需要重复进行生成和销毁B接口的动作;
请问以上A接口的生成事件需要怎么定义?另外我想在B接口生成时初始化B接口里定义的一些全局变量,例如一个TADOConnection(接口B需要对数据库进行操作),需要怎么做?
有知道的大哥大姐们给小弟指点下啊,在此谢过了!
 
接口是没有实现代码的,你怎么完成你的那些东西
说实话,没太看懂得的意思
 
怪我没说清楚![:D]
我现在要实现的webservice功能是:
1、我编写了一个DLL名称为A,部署在服务器A上;
2、同时,还编写了一个DLL名称为B,部署在服务器B上;
3、我的客户程序通过A的服务调用B的服务;
4、我是想在客户程序调用A的服务时,在生成A服务接口的事件中生成一个接口B类型的全局变量,目的就是这一点,我需要在A的什么事件中生成这个全局变量(我在A的实现类里定义了事件Constructor Create来生成,好象接口A生成时根本就不去调用create方法)
5、其实根本的一点是在生成接口的时候我想进行一些处理

{ Invokable implementation File for Tminfowebservice which implements Iminfowebservice }

unit minfowebserviceImpl;

interface

uses
InvokeRegistry, Types, XSBuiltIns, minfowebserviceIntf,IniFiles,DB,ADODB,
SysUtils, Ihostminfowebservice1;

type

{ Tminfowebservice }
Tminfowebservice = class(TInvokableClass, Iminfowebservice)
private
FInterface: Ihostminfowebservice;
constructor Create;
destructor Destroy;
public
//查询会员信息
function QueryMember(aID: Integer): String;overload;stdcall;
function QueryMember(sql: String): String;overload;stdcall;
//添加新会员,参数为插入会员记录的SQL语句
function AddMember(sql: String): Boolean;stdcall;
//编辑会员信息,参数为编辑SQL语句
function EditMember(sql: String): Boolean;stdcall;
//删除会员
function DelMember(aID: Integer): Boolean;stdcall;
function GetMsg: String;stdcall;
end;

implementation

{ Tminfowebservice }

constructor Tminfowebservice.Create;
begin
//Finterface := GetIhostminfowebservice; 好象不起作用
end;

destructor Tminfowebservice.Destroy;
begin
FInterface := nil;
end;

function Tminfowebservice.AddMember(sql: String): Boolean;
begin
//

end;

function Tminfowebservice.DelMember(aID: Integer): Boolean;
begin
//
end;

function Tminfowebservice.EditMember(sql: String): Boolean;
begin
//
end;

function Tminfowebservice.GetMsg: String;
begin
if Assigned(Finterface) then
begin
Finterface := GetIhostminfowebservice;
Result := (Finterface as Ihostminfowebservice).GetMsg;
end
else
Result := '没找到接口';
end;

function Tminfowebservice.QueryMember(aID: Integer): String;
begin
//
end;

function Tminfowebservice.QueryMember(sql: String): String;
begin
//
end;

initialization
{ Invokable classes must be registered }
InvRegistry.RegisterInvokableClass(Tminfowebservice);

end.
 
constructor Create override;


constructor Tminfowebservice.Create;
begin
inherited;
Finterface := GetIhostminfowebservice; 好象不起作用
showmessage('asdflkasjdf');
end;

瞎试一下
 
多人接受答案了。
 
后退
顶部