⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untcomponentfactory.pas

📁 车辆管理系统
💻 PAS
字号:
unit untComponentFactory;

interface

  Uses Sysutils, Comobj, AdoDB, DBclient, Provider, Strutils;

  function GetnewCName:String;
  function f_Replace(Input,s1,s2:string): string;

  function GetNewAdoquery:Tadoquery;
  procedure FreeExistAdoquery(Q:Tadoquery);
  function GetNewClientDataset:TClientDataset;
  procedure FreeExistClientDataset(CDS:TClientDataset);
  function GetNewDatasetProVider:TDatasetProvider;
  procedure FreeExistDatasetProvider(DSP:TDatasetProvider);

implementation

uses untDmServer;

function GetnewCName:String;
var
  AGuid:TGuid;
  NewValue:String;
begin
  OleCheck(CreateGuid(AGuid));
  NewValue:=GuidToString(Aguid);
  NewValue:=f_Replace(NewValue,'-','_');
  Result:='C'+Copy(NewValue,2,Length(NewValue)-2);
end;

function f_Replace(Input,s1,s2:string): string;
Begin
   Result:='';
   while Pos(s1,Input) > 0 do
   begin
      Result:= Result+LeftStr(Input,pos(s1,Input)-1)+s2;
      Input:=RightStr(Input,length(Input)-Pos(s1,Input)-length(s1)+1);
   end;
   Result:=Result+Input;
end;

function GetNewAdoquery:Tadoquery;
var
  Q:Tadoquery;
begin
   Q:=Tadoquery.Create(nil);
   Q.Name:=GetnewCName;
   Q.Connection:=DmServer.AdoConMain;
   Q.CacheSize:=1000;
   Q.CursorType:=ctStatic;
   Q.LockType:=ltBatchOptimistic;
   Result:=Q;
end;

procedure FreeExistAdoquery(Q:Tadoquery);
begin
  Q.Close;
  Q.SQL.Clear;
  Q.Free;
end;

function GetNewClientDataset:TClientDataset;
var
  CDS:TClientDataset;
begin
  CDS:=Tclientdataset.Create(nil);
  CDS.Name:=GetnewCName;
//  CDS.FetchOnDemand:=True;
//  CDS.PacketRecords:=0;
  Result:=CDS;
end;

procedure FreeExistClientDataset(CDS:TClientDataset);
begin
  if CDS.Active then
    CDS.Close;
  CDS.Free;
end;

function GetNewDatasetProVider:TDatasetProvider;
var
  DSP:TDatasetProvider;
begin
  DSP:=TdatasetProvider.Create(nil);
  DSP.Name:=GetnewCName;
  DSP.DataSet:=nil;
  Result:=DSP;
end;

procedure FreeExistDatasetProvider(DSP:TDatasetProvider);
begin
  DSP.DataSet:=nil;
  DSP.Free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -