📄 temprtdataset.pas
字号:
unit TempRTDataSet;
interface
uses
SysUtils, Classes,Forms,DBGrids,ADODB,TitleDesign,Controls,inifiles,
tools,remotedataset,db,dialogs,comobj,savetempdb,loadtempdb,AccessCompress;
type
TTempRTDataSet = class(TComponent)
private
FAbout:string;
FAdoconn:Tadoconnection;
FAdoqq:TAdoquery;
FAdoqq1:Tadoquery;
Saveform:Tsavetempdb_form;
loadform:Tloadtempdb_form;
FbillQ1:Tremotedataset;
FbillQ2:Tremotedataset;
ac: TAccessCompress;
function TbExists(adoconn1:Tadoconnection;tablename:string):boolean;
procedure setbillq1(value:Tremotedataset);
procedure setbillq2(value:Tremotedataset);
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SaveTempDb(BillType:string;BillCode:string;BillMemo:string;q1:TRemoteDataSet;q2:TRemoteDataSet);
procedure loadTempDb(BillType:string;q1:TRemoteDataSet;q2:TRemoteDataSet);
{ Public declarations }
published
//property Connection:TADOConnection read FConnection write SetConnection;
Property About:string read FAbout write Fabout;
property BillQ1:Tremotedataset read FbillQ1 write setbillq1;
property BillQ2:Tremotedataset read FbillQ2 write setbillq2;
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('DbAnyWhere', [TTempRTDataSet]);
end;
constructor TTempRTDataSet.Create(AOwner: TComponent);
var
CreateAccess:OleVariant;
begin
inherited Create(AOwner);
Saveform:=Tsavetempdb_form.Create(self);
loadform:=Tloadtempdb_form.Create(self);
FAdoconn:=Tadoconnection.Create(self);
FAdoqq:=TAdoquery.Create(self);
FAdoqq1:=Tadoquery.Create(self);
ac:=TAccessCompress.Create(self);
//生成数据库,连接,查询组件等
try
//判断是否存在
if not FileExists(ExtractFilePath(Application.ExeName)+'TempRTDataSet.dll') then
begin
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
ExtractFilePath(Application.ExeName)+'TempRTDataSet.dll');
//showmessage('创建成功!');
end else
begin
//showmessage('已经存在。');
end;
//压缩
ac.AccessCompress(ExtractFilePath(Application.ExeName)+'TempRTDataSet.dll','');
//连接
Fadoconn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
ExtractFilePath(Application.ExeName)+'TempRTDataSet.dll'+
';Persist Security Info=False';
Fadoconn.LoginPrompt:=false;
Fadoconn.Open;
Fadoqq.Connection:=FAdoconn;
Fadoqq1.Connection:=Fadoconn;
//查看是否存在所需表格
if not self.TbExists(Fadoconn,'TempDb') then
begin
//创建
Fadoqq.Close;
fadoqq.SQL.Text:='create table TempDb('+
'bill_type varchar(20) null,'+
'Bill_code varchar(20) null,'+
'Bill_Memo varchar(200) null,'+
'bill_time datetime null,'+
'bill_q1 text null,'+
'bill_q2 text null'+
')';
fadoqq.ExecSQL;
end;
except
showmessage('初始化临时数据库失败!');
end;
Fabout:='DbAnyWhere TempRTDataSet Vcl';
end;
destructor TTempRTDataSet.Destroy;
begin
inherited Destroy;
//Fadoconn.Close;
//freeandnil(Saveform);
//freeandnil(loadform);
end;
procedure TTempRTDataSet.setbillq1(value:Tremotedataset);
begin
if value<>nil then FBillQ1:=value else FBillQ1:=nil;
end;
procedure TTempRTDataSet.setbillq2(value:Tremotedataset);
begin
if value<>nil then FBillQ2:=value else FBillQ2:=nil;
end;
function TTempRTDataSet.tbexists(adoconn1:Tadoconnection;tablename:string):boolean;
var
tblist:tstringlist;
i:integer;
begin
result:=false;
tblist:=Tstringlist.Create;
adoconn1.GetTableNames(tblist,false);
for i:=0 to tblist.Count-1 do
begin
if tblist[i]=tablename then result:=true;
end;
tblist.Free;
end;
procedure TTempRTDataSet.SaveTempDb(BillType:string;BillCode:string;BillMemo:string;q1:TRemoteDataSet;q2:TRemoteDataSet);
begin
saveform.Billtype:=billtype;
saveform.Edit1.Text:=billcode;
saveform.Memo1.Text:=billmemo;
saveform.q1.Data:=q1.Data;
saveform.q2.Data:=q2.Data;
saveform.qq.Connection:=self.FAdoconn;
saveform.ShowModal;
end;
procedure TTempRTDataSet.loadTempDb(BillType:string;q1:TRemoteDataSet;q2:TRemoteDataSet);
begin
loadform.qq.Connection:=self.FAdoconn;
loadform.qq1.Connection:=self.FAdoconn;
loadform.billtype:=billtype;
if loadform.ShowModal=mrok then
begin
//指定值
if length(trim(loadform.q1.XMLData))>0 then q1.Data:=loadform.q1.Data;
if length(trim(loadform.q2.XMLData))>0 then q2.Data:=loadform.q2.Data;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -