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

📄 unit2.pas

📁 本系统在一些大中型企业(跨多达24个区域)一直都在很好的服务过
💻 PAS
字号:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, dbtables,ExtCtrls, Db, Grids, DBGrids, FileCtrl, Buttons,
  ComCtrls;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
    Label2: TLabel;
    ListBox1: TListBox;
    Panel2: TPanel;
    Label1: TLabel;
    Label3: TLabel;
    ListBox2: TListBox;
    BatchMove1: TBatchMove;
    Query1: TQuery;
    Memo5: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    DirectoryListBox1: TDirectoryListBox;
    StatusBar1: TStatusBar;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Image1: TImage;
    Image2: TImage;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
  procedure READTABLE;
  procedure WRITETABLE;
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1, Unit3;

{$R *.DFM}

var
dir: string;

procedure TForm2.FormCreate(Sender: TObject);
begin
session.GetAliasNames(listbox1.items);
dir:=extractFilePath(ParamStr(0)) ;
end;

procedure TForm2.ListBox1DblClick(Sender: TObject);
var
CUrrentDB: string;
begin
CUrrentDB:=listbox1.items[listbox1.itemindex];
session.GetTableNames(CUrrentDB,'',True,False,listbox2.items);
end;

procedure TForm2.READTABLE;
var i:integer;
begin
memo5.Lines.Clear;
memo2.Lines.Clear;
memo3.Lines.Clear;
for i:=0 to DataModule2.Query1.FieldCount-1 do
begin
memo2.Lines.Add(DataModule2.Query1.Fields[i].fieldname) ;

   if  (DataModule2.Query1.FieldDefs[i].datatype=ftstring) or (DataModule2.Query1.FieldDefs[i].datatype=ftfloat) or (DataModule2.Query1.FieldDefs[i].datatype=ftdate) or (DataModule2.Query1.FieldDefs[i].datatype=ftsmallint) or (DataModule2.Query1.FieldDefs[i].datatype=ftword) or (DataModule2.Query1.FieldDefs[i].datatype=ftautoinc) or (DataModule2.Query1.FieldDefs[i].datatype=ftinteger) or (DataModule2.Query1.FieldDefs[i].datatype=ftbcd) or (DataModule2.Query1.FieldDefs[i].datatype=ftCurrency) or(DataModule2.Query1.FieldDefs[i].datatype=ftdatetime)  or (DataModule2.Query1.FieldDefs[i].datatype=ftmemo)  or (DataModule2.Query1.FieldDefs[i].datatype=fttime)  or (DataModule2.Query1.FieldDefs[i].datatype=ftblob)  then
       begin
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftdate) then
                 begin
                    memo3.Lines.Add('ftdate');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftdatetime) then
                 begin
                    memo3.Lines.Add('ftdate');
                 end;

             if  (DataModule2.Query1.FieldDefs[i].datatype=ftcurrency) then
                 begin
                    memo3.Lines.Add('ftcurrency');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftmemo) then
                 begin
                    memo3.Lines.Add('ftmemo');
                 end;
              if  (DataModule2.Query1.FieldDefs[i].datatype=ftbcd) then
                 begin
                    memo3.Lines.Add('ftbcd');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=fttime) then
                 begin
                    memo3.Lines.Add('fttime');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftautoinc) then
                 begin
                    memo3.Lines.Add('ftautoinc');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftblob) then
                 begin
                    memo3.Lines.Add('ftblob');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftstring) then
                 begin
                    memo3.Lines.Add('ftstring');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftword) then
                 begin
                    memo3.Lines.Add('ftword');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftsmallint) then
                 begin
                    memo3.Lines.Add('ftsmallint');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftinteger) then
                 begin
                    memo3.Lines.Add('ftinteger');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftfloat) then
                 begin
                    memo3.Lines.Add('ftfloat');
                 end;
             if  (DataModule2.Query1.FieldDefs[i].datatype=ftBoolean) then
                 begin
                    memo3.Lines.Add('ftboolean');
                 end;
      end
         else
                 begin
                    memo3.Lines.Add('OTHER');
                 end;
        memo5.Lines.Add(inttostr(DataModule2.Query1.Fields[i].displaywidth));
   end;
      

end;

procedure Tform2.WRITETABLE;
var
i:integer;
begin
 {==========================================}
     DataModule2.Query1.Close;
     DataModule2.Query1.FieldDefs.Clear;


     for i:=0 to  memo2.Lines.Count-1 do
      begin
      if   memo3.Lines[i]='ftsmallint' then
           begin
             {filetype.Lines.Add('ftsmallint');}
             DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftsmallint,0,false);

           end;

      if   memo3.Lines[i]='ftdate' then
           begin
           { filetype.Lines.Add('ftdate');}
            DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftdate, 0,false);
           end;
      if   memo3.Lines[i] ='ftword' then
           begin
            {filetype.Lines.Add('ftword');}
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i] ,ftword, 0,false);
           end;
      if   memo3.Lines[i]='ftinteger' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftinteger,0,false);
           {filetype.Lines.Add('ftinteger');}
           end;
      if   memo3.Lines[i] ='ftfloat' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftfloat,0,false);
{           filetype.Lines.Add('ftfloat');   }
           end;
      if   memo3.Lines[i] ='ftboolean' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftboolean,0,false);
 {          filetype.Lines.Add('ftboolean');}
           end;
      if   memo3.Lines[i] ='fttime' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],fttime,0,false);
{           filetype.Lines.Add('fttime');     }
           end;
      if   memo3.Lines[i]='ftautoinc' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftautoinc,0,false);
 {          filetype.Lines.Add('ftautoinc');}
           end;
      if   memo3.Lines[i]='ftcurrency' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftcurrency,0,false);
{           filetype.Lines.Add('ftcurrency'); }
           end;
      if   memo3.Lines[i]='ftmemo' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftmemo,word(strtoint(memo5.Lines[i])),false);
        {   filetype.Lines.Add('ftmemo');}
           end;
      if   memo3.Lines[i]='ftstring' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftstring,word(strtoint(memo5.Lines[i])),false);
{           filetype.Lines.Add('ftstring'); }
           end;
      if   memo3.Lines[i]='ftbcd' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftbcd,word(strtoint(memo5.Lines[i])),false);
 {          filetype.Lines.Add('ftbcd');}
           end;
      if   memo3.Lines[i]='ftblob' then
           begin
           DataModule2.Query1.FieldDefs.Add(memo2.Lines[i],ftblob,word(strtoint(memo5.Lines[i])),false);
{           filetype.Lines.Add('ftblob'); }
           end;
 {          filename.Lines.Add(  clientdataset1.FieldDefs.Items[i].Name);}
{           filesize.Lines.Add(  inttostr(clientdataset1.Fields[i].DisplayWidth));}
        end;
      DataModule2.Query1.TableName:=form1.filelistbox2.FileName;
      DataModule2.Query1.Createtable;
  {==========================================}


end;


procedure TForm2.BitBtn1Click(Sender: TObject);
var
ret:integer;
i:integer;
begin

if  form2.listbox2.Items.Strings[form2.listbox2.ItemIndex] <>'' then
begin
ret:=application.MessageBox(pchar('确定你所选的数据表'+form1.filelistbox2.FileName+'数椐库结构必须与'+form2.listbox2.Items.Strings[form2.listbox2.ItemIndex]+'相同,否则追加将产生严重错误!!!!'),'追加数据记录至服务器',MB_OKCANCEL+MB_DEFBUTTON2+MB_ICONQUESTION);
if ret=1 then
begin
DataModule2.Query1.TableName:=form1.filelistbox2.FileName;
DataModule2.Query1.Open;
READTABLE;
query1.Databasename:=form2.listbox1.Items.Strings[form2.listbox1.ItemIndex];
 query1.SQL.Clear;
 query1.Sql.Add('Select * from '+form2.listbox2.Items.Strings[form2.listbox2.ItemIndex]);
 query1.Open;
  BatchMove1.Destination:=DataModule2.Query1;
  BatchMove1.Source:=query1;
  BatchMove1.Mode:=batAppend;
  BatchMove1.Execute;
  DataModule2.Query1.Close;
  query1.Close;
  showmessage('OK!追加顺利完成!!!,原数据库必须将被清空!!!');
  DataModule2.Query1.close;
  DataModule2.Query1.DeleteTable;
  WRITETABLE;
  close;
  DataModule2.Query1.close;
  query1.Close;
end;
end;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
close;
end;


end.

⌨️ 快捷键说明

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