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

📄 main.pas

📁 Delphi数据库编程
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, DB, DBTables, Buttons;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    DBGrid1: TDBGrid;
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Label4: TLabel;
    Edit4: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    Edit5: TEdit;
    Label7: TLabel;
    Edit6: TEdit;
    Label8: TLabel;
    Edit7: TEdit;
    CheckBox1: TCheckBox;
    Button6: TButton;
    Query1: TQuery;
    Table1: TTable;
    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure Button5Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  IsIns:Boolean;  //该变量用来标识是是增加记录还是修改记录
  procedure  DispValue();
  procedure  DEinsert();
  procedure  DEOk();
  Procedure ROnly();
  Procedure RW();

implementation

uses cx;

{$R *.dfm}
procedure  DispValue(); //把当前记录的值显示在相应的组件中
begin
  Form1.Edit1.text:=Form1.Table1.fieldbyname('编号').AsString ;
  Form1.Edit2.text:=Form1.Table1.fieldbyname('姓名').AsString ;
  Form1.Edit3.text:=Form1.Table1.fieldbyname('性别').AsString ;
  Form1.Edit4.text:=Form1.Table1.fieldbyname('职称').AsString ;
  Form1.Edit5.text:=Form1.Table1.fieldbyname('工作日期').AsString ;
  Form1.Edit6.text:=Form1.Table1.fieldbyname('工资').AsString ;
  Form1.Edit7.text:=Form1.Table1.fieldbyname('奖金').AsString ;
  Form1.CheckBox1.Checked :=Form1.Table1.fieldbyname('婚否').AsBoolean ;
end;

procedure  DEinsert();   //设置插入和修改状态时的各按钮是否可用
begin
   Form1.Button1.Enabled :=False;
   Form1.Button2.Enabled :=False;
   Form1.Button3.Enabled :=True;
   Form1.Button4.Enabled :=True;
   Form1.Button5.Enabled :=False;
   Form1.Button6.Enabled :=False;
end;
procedure  DEOK();  //设置非插入和修改状态时的各按钮是否可用
begin
   Form1.Button1.Enabled :=True;
   Form1.Button2.Enabled :=True;
   Form1.Button3.Enabled :=False;
   Form1.Button4.Enabled :=False;
   Form1.Button5.Enabled :=True;
   Form1.Button6.Enabled :=True;
end;
Procedure clsvalue(); //清除界面上各控件的值
begin
   Form1.edit1.Text :='';
   Form1.edit2.Text :='';
   Form1.edit3.Text :='';
   Form1.edit4.Text :='';
   Form1.edit5.Text :='';
   Form1.edit6.Text :='';
   Form1.edit7.Text :='';
   Form1.CheckBox1.Checked :=False;
end;
Procedure ROnly(); //使界面上各控件只能读,即非插入和修改时
begin
  Form1.Edit1.readonly:=true;
  Form1.Edit2.readonly:=true;
  Form1.Edit3.readonly:=true;
  Form1.Edit4.readonly:=true;
  Form1.Edit5.readonly:=true;
  Form1.Edit6.readonly:=true;
  Form1.Edit7.readonly:=true;
  Form1.CheckBox1.Enabled :=False;
end;
Procedure RW(); //使界面上各控件可读可写,即在修改或插入状态
begin
  Form1.Edit1.readonly:=False;
  Form1.Edit2.readonly:=False;
  Form1.Edit3.readonly:=False;
  Form1.Edit4.readonly:=False;
  Form1.Edit5.readonly:=False;
  Form1.Edit6.readonly:=False;
  Form1.Edit7.readonly:=False;
  Form1.CheckBox1.Enabled :=True;
end;



procedure TForm1.FormCreate(Sender: TObject);
Var
  curdir:string;
begin
  getdir(0,Curdir);  //得到当前目录
  query1.DatabaseName :=curdir ; //设置数据库名
  Table1.DatabaseName :=CurDir;  //设置数据库名
  Ronly;
  DEOK;
  table1.Open ;    //打开表
  dispvalue;       //把当前记录的值显示在各组件中
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  RW;
  Clsvalue;
  DEinsert;
  IsIns:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  RW;
  DEinsert;
  IsIns:=False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  Ronly;
  DEOk;
  ////通过参数进入插入操作或修改操作
  If IsIns then
     begin
        Query1.SQL.Clear ;
        Query1.SQL.Add('insert into GZB.db(编号,姓名,性别,职称,工作日期,工资,奖金,婚否)');
        query1.SQL.add('Values((:A1),(:A2),(:A3),(:A4),(:A5),(:A6),(:A7),(:A8))');
        Query1.Params[0].AsString :=Edit1.Text ;
        query1.Params[1].AsString :=Edit2.text;
        query1.Params[2].AsString :=Edit3.text;
        query1.Params[3].AsString :=Edit4.text;
        query1.Params[4].AsDateTime :=StrTodatetime(Edit5.text);
        query1.Params[5].Asfloat :=strtofloat(Edit6.text);
        query1.Params[6].Asfloat :=strtofloat(Edit7.text);
        query1.Params[7].AsBoolean :=CheckBox1.Checked ;
        query1.execSQL;
     end
       else
         begin
            Query1.SQL.Clear ;
            Query1.SQL.Add('update  GZB.db  set 编号=(:A1)');
            Query1.SQL.Add(', 姓名=(:A2)');
            Query1.SQL.Add(', 性别=(:A3)');
            Query1.SQL.Add(', 职称=(:A4)');
            Query1.SQL.Add(', 工作日期=(:A5)');
            Query1.SQL.Add(', 工资=(:A6)');
            Query1.SQL.Add(', 奖金=(:A7)');
            Query1.SQL.Add(', 婚否=(:A8)');
            Query1.SQL.Add('Where  编号=(:A9)');
            query1.Params[8].AsString :=table1.fieldbyname('编号').AsString;
            Query1.Params[0].AsString :=Edit1.Text ;
            query1.Params[1].AsString :=Edit2.text;
            query1.Params[2].AsString :=Edit3.text;
            query1.Params[3].AsString :=Edit4.text;
            query1.Params[4].AsDateTime :=StrTodatetime(Edit5.text);
            query1.Params[5].Asfloat :=strtofloat(Edit6.text);
            query1.Params[6].Asfloat :=strtofloat(Edit7.text);
            query1.Params[7].AsBoolean :=CheckBox1.Checked ;
            query1.execSQL;
         end;
         table1.Refresh ;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  DEOk;
  Ronly;
  dispValue;

end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  dispValue;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
   bh:string;
begin   //通过参数进行删除操作
         bh:=Table1.fieldbyname('编号').asstring;
         Query1.SQL.Clear ;
         Query1.SQL.Add('DELETE FROM GZB WHERE 编号=(:a1)');
         query1.Params[0].asstring:=bh;
         query1.execSQL;
         table1.Refresh ;
         dispvalue;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  query1.Close ;
  table1.Close;
  Form1.close;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  Form1.Hide ;
  Form2.show;
end;

end.

⌨️ 快捷键说明

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