最近,一直都想搞个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;