拜托,请给我说说DataModule的具体用法。:

解决方案 »

  1.   

    相当与供公共调用的窗口(无法显示),
    里面放一些数据库组建,如TADOCONNECTION,TADOQUERY,TQUERY,TADODATASET,TTABLE等等
    在用到这些东西的地方调用它就行了
      

  2.   

    Datamodule是一个容器,主要用来放数据库查询控件,如Ttable、Tquery、Tdatasource等,
    这样能方便程序的管理
      

  3.   

    跟Form没什么区别,只是他运行时看不见
      

  4.   

    除了作为容器方便管理各个数据库组件外,最重要的是他可以使DELPHI数据库程序更加面向对象(有些程序员称:一旦程序中使用了数据库组件后,程序设计就不能面向对象了,其实不然)。
    下面举个例子:
    在一个Datamodule中放一个adoconnection一个adoquery已经一个datasetprovider进行数据分发。
    Datamodule相当于数据层,为了实现业务层与数据层分离,可以设计一个专门的业务类TMaint,将Datamodule作为它内部的一个对象。  TMaint=class
      private
        FDataModule:TDataModule1;
      protected
      public
        
        function FindUserInfo(const UserName:AnsiString):OleVariant;//得到指定用户的详细信息
        
        constructor Create;
        destructor Destroy;override;
      end;FindUserInfo作为TMaint的一个方法是为了获得指定用户的详细信息,在这个方法的实现中调用FDataModule.adoquery来完成查询并返回结果。以上体现了一种业务与数据和界面相分离的面向对象思想。如果数据库组件直接放到了窗体中,很容易把业务、数据、界面混杂在一起。