• TDataSetProvider TClientDataSet 动态生成与动态连接


    最近,一直都想搞个MIS系统,最少要做到自己认为好的。

    将数据连接对象、数据层封装到DLL中,做到界面与业务类、数据操作类分离。以方便以后的系统的扩展。

     

      { Role 角色对象数据操作基类 }
      TDBRole = class (TInterfacedObject)
      protected
        FRoleTabelName : String;  //  角色表 
        FDataSource : TDataSource;
        FDataSetProvider : TDataSetProvider;
        FClientDataSet : TClientDataSet;

      public      
        constructor Create;
        destructor Destroy; override;
      end;

    { TDBRole }
    constructor TDBRole.Create;
    begin
      inherited Create;
      FDataSetProvider := TDataSetProvider.Create(nil);
      FDataSetProvider.Name := 'FDataSetProvider';
      FClientDataSet := TClientDataSet.Create(nil);

      { FClientDataSet对象的TDataSetProvider赋值,不能使用FClientDataSet.ProviderName的属值赋值,编译无错,运行将报找不到DataSetProvider对象 }
      FClientDataSet.SetProvider(FDataSetProvider);
    end;

    destructor TDBRole.Destroy;
    begin
      FDataSource := nil;
      { 以没有数据连接,找不到数据集,所以不用再次关闭 }
      //FClientDataSet.Close;
      FClientDataSet.Free;
      FDataSetProvider.Free;
      inherited Destroy;
    end;

  • 相关阅读:
    【JavaScript知识点一】JavaScript 数据类型
    grunt操作之Gruntfile.js
    js重定向后跳转到当前页面锚点
    Java-变量和方法
    Java-运算符
    Java-类型转化
    Java-数组
    Java-循环结构(for,while)
    Java-选择结构(if-else)
    Java-数据类型(引用类型)
  • 原文地址:https://www.cnblogs.com/yanyyx/p/1309713.html
Copyright © 2020-2023  润新知