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控件?

解决方案 »

  1.   

    第一个问题解决了,comanche(太可怕) 一语道破了天机,第二个问题解决了一起结贴!
    解决方案:在单元最下面 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控件?
    我应该在哪个地方做什么设置?
      

  2.   

    第二个问题自己解决了!
    必须在_TLB.PAS文件中设置接口的继承关系!