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