1。在MIDAS中中手工新增了一个接口(不是新增服务器时自动添加的接口),该接口属于一个新的CoClass
问题:在客户端中访问服务器自动添加的接口没有问题,
而访问手工新增的接口时始终出现接口没有注册的异常!
手工新增的接口应该在哪儿注册?2。在服务器端新增了一个DataModel,该DataModel继承自服务器端自动生成的服务器类
问题:在客户端怎么访问新增的DataModel中的非可视化控件及用户自定义过程?
代码:
服务器自动生成的类:TTEST_MIDAS 定义如下
type
TTEST_MIDAS = class(TRemoteDataModule,ITEST_MIDAS)
SQLCon: TSQLConnection;
SQLQuery: TSQLQuery;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;继承自TTEST_MIDAS 的类:
type
TDM_BaseBill = class(TTEST_MIDAS,IBaseBill)
DataSetProvider1: TDataSetProvider;
private
{ Private declarations }
public
end;
我现在在客户端中怎么访问TDM_BaseBill类中的DataSetProvider1控件?
问题:在客户端中访问服务器自动添加的接口没有问题,
而访问手工新增的接口时始终出现接口没有注册的异常!
手工新增的接口应该在哪儿注册?2。在服务器端新增了一个DataModel,该DataModel继承自服务器端自动生成的服务器类
问题:在客户端怎么访问新增的DataModel中的非可视化控件及用户自定义过程?
代码:
服务器自动生成的类:TTEST_MIDAS 定义如下
type
TTEST_MIDAS = class(TRemoteDataModule,ITEST_MIDAS)
SQLCon: TSQLConnection;
SQLQuery: TSQLQuery;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;继承自TTEST_MIDAS 的类:
type
TDM_BaseBill = class(TTEST_MIDAS,IBaseBill)
DataSetProvider1: TDataSetProvider;
private
{ Private declarations }
public
end;
我现在在客户端中怎么访问TDM_BaseBill类中的DataSetProvider1控件?
解决方案:在单元最下面 TComponentFactory 代码哈, 是TComponent派生的要用这注册 factory
简单吧?但别人不说你就是不知道!
第二个问题怎么解决呢?在服务器端新增了一个DataModel,该DataModel继承自服务器端自动生成的服务器类
问题:在客户端怎么访问新增的DataModel中的非可视化控件及用户自定义过程?比如我在服务器端自动生成的服务器类中只放入了一个ADOConnection,一个ADOQuery1,DataSetProvider1,该类里面没有任何代码;TDM_BaseBill 继承自上一段的类;
在TDM_BaseBill 类中放置了一个ADOQuery2,DataSetProvider2;
该类中也没有任何代码;但我在客户端的ClientDataSet中确只能看到服务器自动生成的服务器类中的DataSetProvider1,而看不到继承它的类中的DataSetProvider2控件?type
TTEST_MIDAS = class(TRemoteDataModule,ITEST_MIDAS)
SQLCon1: TSQLConnection;
SQLQuery1: TSQLQuery;
DataSetProvider1: TDataSetProvider;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;继承自TTEST_MIDAS 的类:
type
TDM_BaseBill = class(TTEST_MIDAS,IBaseBill)
SQLQuery2: TSQLQuery;
DataSetProvider2: TDataSetProvider;
private
{ Private declarations }
public
end;我现在在客户端中怎么访问TDM_BaseBill类中的DataSetProvider2控件?
我应该在哪个地方做什么设置?
必须在_TLB.PAS文件中设置接口的继承关系!