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