📄 untcomponentfactory.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 + -