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

📄 temprtdataset.pas

📁 p2pdbanywhere 可以通过之udp方式远程连接数据库的组件,这个组件非常好,是Delphi7,9,2006能够使用,包含源码.
💻 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 + -