我在开发一三层程序,在服务器端添加了一unit,请问为何无法引用服务器端的remoteDataModule中的数据集等控件,两者在同一project中,unit中已经use了remoteDataModule的单元名。(显示:identifier not declared) 请高手指点,谢谢!

解决方案 »

  1.   

    我新建了一unit_1,在unit_1中写上remoteDataModule的Tdatabase等控件时,如Tdatabase_1,“Tdatabase_1.  ”后无下拉,强行写上属性,则编译时出错:identifier not declared。已经use了remoteDataModule的单元名,请赐教!!
      

  2.   


    原因在于,unit_1当中只有一个基于RemoteDataModule的class,并没有声明它的实例,所以你无法引用类对象。
    比如:
      TTest = class(TRemoteDataModule, ITest)
        Tdatabase_1: TDatabase;
      private
        { Private declarations }
      protected
        class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
      public
        { Public declarations }
      end;
    如果你直接使用Tdatabase_1,除非另外有一个全局的变量命名为Tdatabase_1或者本类当中声明了,那肯定不存在。
      

  3.   

    这样的话,我想在服务器定义一个过程,使得这个过程可以被客户端或者是服务器端的其他单元调用,而且在这个过程里可以调用remotedatamodule中的数据集等控件,应该怎么做,请细讲一下步骤,谢谢!!!
      

  4.   

    另外就是,有没有可能在服务器端定义一个公共单元,在公共单元里调用remotedatamodule中的数据集等控件?请指点,谢谢!