📄 trans_f.pas
字号:
unit Trans_F;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Db, DBTables, ComCtrls;
type
TF_Trans = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Button1: TButton;
Memo1: TMemo;
DB_New: TDatabase;
DB_Old: TDatabase;
Ds_New: TDataSource;
Ds_Old: TDataSource;
Tb_New: TTable;
Tb_Old: TTable;
DBN: TDBNavigator;
PC: TPageControl;
TS_Set: TTabSheet;
Label1: TLabel;
Label2: TLabel;
E_New: TEdit;
E_Old: TEdit;
Bt_Trans: TButton;
Bt_Open: TButton;
Ts_SQL: TTabSheet;
Panel3: TPanel;
Button2: TButton;
DBG_SQL: TDBGrid;
CB_OldDB: TCheckBox;
M_SQL: TMemo;
Q_SQL: TQuery;
CB_Select: TCheckBox;
Ds_SQL: TDataSource;
M_sFields: TMemo;
M_dFields: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Bt_OpenClick(Sender: TObject);
procedure Bt_TransClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure CB_OldDBClick(Sender: TObject);
private
{ Private declarations }
procedure SetTable(tablename:String);
procedure AddField(sField, dField:String);
Procedure ExecTrans;
public
{ Public declarations }
end;
var
F_Trans: TF_Trans;
implementation
{$R *.DFM}
procedure Tf_Trans.SetTable(tablename:String);
begin
Tb_New.Active := False;
Tb_Old.Active := False;
Tb_New.TableName := TableName;
Tb_Old.TableName := TableName;
Tb_New.Active := True;
Tb_Old.Active := True;
M_sFields.Lines.Clear;
M_dFields.Lines.Clear;
end;
procedure TF_Trans.AddField(sField, dField:String);
Begin
M_sFields.Lines.Add(sField);
If dField = '' Then
M_dFields.Lines.Add(sField)
Else
M_dFields.Lines.Add(dField)
End;
Procedure Tf_Trans.ExecTrans();
var
I:Integer;
Begin
Tb_Old.First;
While Not Tb_Old.Eof Do
Begin
Tb_New.Insert;
For I:=0 To M_sFields.Lines.Count - 1 Do
Tb_New[M_dFields.Lines.Strings[I]] := Tb_Old[M_sFields.Lines.Strings[I]];
Tb_New.Post();
Tb_Old.Next;
End;
End;
procedure TF_Trans.Button1Click(Sender: TObject);
begin
Close();
end;
procedure TF_Trans.Button2Click(Sender: TObject);
begin
If Q_SQL.Active Then
Q_SQL.Close;
Q_SQL.SQL.Clear;
Q_SQL.SQL.Add(M_SQL.Text);
If CB_Select.Checked Then
Q_SQL.Open
Else
Q_SQL.ExecSQL;
end;
procedure TF_Trans.Bt_OpenClick(Sender: TObject);
begin
With DB_Old,Params Do
Begin
If Connected Then
Connected := False;
Clear();
Add('Server Name='+E_Old.Text);
Add('User Name=sysdba');
Add('password=masterkey');
Connected := True;
End;
With DB_new,Params Do
Begin
If Connected Then
Connected := False;
Clear();
Add('Server Name='+E_New.Text);
Add('User Name=sysdba');
Add('password=masterkey');
Connected := True;
End;
end;
procedure TF_Trans.Bt_TransClick(Sender: TObject);
begin
//村子
SetTable('Tb_Village');
AddField('F_Village_No','');
AddField('f_Town_No','');
AddField('f_Village_Name','');
ExecTrans;
//变压器
SetTable('Tb_Transfer');
AddField('F_Transfer_No','');
AddField('f_Line_No','');
AddField('f_Transfer_Name','');
ExecTrans;
//户
SetTable('Tb_House');
AddField('F_House_No','');
AddField('f_Transfer_No','');
AddField('f_House_Name','');
AddField('f_village_no','');
AddField('f_position','');
AddField('f_telephone','');
AddField('f_elect_no','');
AddField('f_voltage_no','');
AddField('f_ct_up','');
AddField('f_ct_down','');
AddField('f_box_no','');
AddField('f_date','');
AddField('f_adjust_count','');
AddField('f_subfix_rate1','F_Rate1');
AddField('f_subfix_rate2','F_Rate2');
AddField('f_elect_no1','');
AddField('f_elect_no2','');
ExecTrans;
//表
SetTable('Tb_Ammeter');
AddField('F_Ammeter_No','');
AddField('f_house_no','');
AddField('f_ammeter_Date','');
AddField('f_ammeter_count','');
AddField('f_ammeter_last_count','');
AddField('f_this_count','');
AddField('f_ammeter_model','');
AddField('f_ammeter_right','');
AddField('f_ct_no','');
AddField('f_ct_model','');
ExecTrans;
end;
procedure TF_Trans.FormActivate(Sender: TObject);
begin
PC.ActivePage := TS_Set;
end;
procedure TF_Trans.CB_OldDBClick(Sender: TObject);
begin
If Q_SQL.Active Then
Q_SQL.Active := False;
If Q_SQL.DatabaseName = 'Old' Then
Q_Sql.DatabaseName := 'New'
Else
Q_Sql.DatabaseName := 'Old';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -