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

📄 addfield.pas

📁 明小子旁注Domain3.0和Domain2.2两个版本源码
💻 PAS
字号:
{##########################################
         旁注入侵专用程序 3.0升级版
 ----------------------------------------
  模块:数据库浏览 - 添加字段
  描述:该单元主要用于增加数据字段
  作者:2005.4.2日凌晨  明小子
##########################################}

unit AddField;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Spin;

type
  TAddFieldForm = class(TForm)
    EdFieldName: TEdit;
    Label1: TLabel;
    CbTable: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    CbFieldType: TComboBox;
    Button1: TButton;
    Button2: TButton;
    StatusBar1: TStatusBar;
    SpinEdit1: TSpinEdit;
    Label4: TLabel;
    ChkBox: TCheckBox;
    CbInt: TComboBox;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure CbFieldTypeChange(Sender: TObject);
    procedure CbTableKeyPress(Sender: TObject; var Key: Char);
    procedure SpinEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  AddFieldForm: TAddFieldForm;

implementation

uses MainUnit;

{$R *.dfm}

procedure TAddFieldForm.Button1Click(Sender: TObject);
var
  TypeStr, TypeInt: string;
   i: integer;
begin

  if Trim(CbTable.Text) = '' then Exit;
  if Trim(EdFieldName.Text) = '' then
  begin
    application.MessageBox('请先设置字段名!','提示',32);
    Exit;
  end;

  MainForm.ADOQuery1.Close;

  if (CbFieldType.ItemIndex = 0) or (CbFieldType.Text = '文本') then
  begin
    if ChkBox.Checked then
      MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
        EdFieldName.Text + ' string(' + inttostr(SpinEdit1.Value) + ') NOT NULL'
    else
      MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
        EdFieldName.Text + ' string(' + inttostr(SpinEdit1.Value) + ')';
  end;

  if (CbFieldType.ItemIndex = 1) or (CbFieldType.ItemIndex = 3) or (CbFieldType.ItemIndex = 4) then
  begin

    if CbFieldType.ItemIndex = 1 then TypeStr := 'memo';
    if CbFieldType.ItemIndex = 3 then TypeStr := 'Currency'; {货币}
    if CbFieldType.ItemIndex = 4 then TypeStr := 'time';

    if ChkBox.Checked then
      MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
        EdFieldName.Text + ' ' + TypeStr + ' NOT NULL'
    else
      MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
        EdFieldName.Text + ' ' + TypeStr;
  end;

  if CbFieldType.ItemIndex = 2 then
  begin

    if CbInt.ItemIndex = 0 then TypeInt := 'byte';
    if (CbInt.ItemIndex = 1) or (CbInt.Text = '长整型') then TypeInt := 'long';
    if CbInt.ItemIndex = 2 then TypeInt := 'single';
    if CbInt.ItemIndex = 3 then TypeInt := 'double';

    if ChkBox.Checked then
      MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
        EdFieldName.Text + ' ' + TypeInt + ' NOT NULL'
    else
      MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
        EdFieldName.Text + ' ' + TypeInt;

  end;

  if CbFieldType.ItemIndex = 5 then {自动编号}
    MainForm.ADOQuery1.SQL.Text := 'alter table ' + CbTable.Text + ' add column ' +
      EdFieldName.Text + ' counter';

  try
    MainForm.ADOQuery1.ExecSQL;
    StatusBar1.Panels[0].Text := '操作成功,字段已添加完毕!';
  except
    StatusBar1.Panels[0].Text := '操作失败,数据表中已存在该字段!';
  end;
  
end;

procedure TAddFieldForm.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TAddFieldForm.CbFieldTypeChange(Sender: TObject);
begin

  if CbFieldType.Itemindex = 0 then
    SpinEdit1.Enabled := True
  else
    SpinEdit1.Enabled := False;

  if CbFieldType.Itemindex = 2 then
  begin
    SpinEdit1.Visible := False;
    CbInt.Visible := True
  end
  else
  begin
    CbInt.Visible := False;
    SpinEdit1.Visible := True;
  end;

end;

procedure TAddFieldForm.CbTableKeyPress(Sender: TObject; var Key: Char);
begin
  key := #0;
end;

procedure TAddFieldForm.SpinEdit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', #8]) then
    key := #0;
end;

procedure TAddFieldForm.FormShow(Sender: TObject);
var
  i: integer;
begin
  if MainForm.TableTree.Items.Count = 0 then Exit;
  CbTable.Clear;
  EdFieldName.Clear;
  for i:= 0 to MainForm.TableTree.Items.Count - 1 do
  CbTable.Items.Add(MainForm.TableTree.Items[i].Text);
  CbTable.ItemIndex := 0;
end;

end.

⌨️ 快捷键说明

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