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

📄 e23.pas

📁 delphi的学习资料
💻 PAS
字号:


unit E23;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Buttons, ExtCtrls, DBTables,
  DBCtrls, ExtDlgs, Mask;

type
  TfmE23 = class(TForm)
    Label1: TLabel;
    Panel2: TPanel;

    Connect: TADOConnection;
    dbgA: TDBGrid;
    dsA: TDataSource;
    dSetA: TADODataSet;
    DBedt0: TDBEdit;
    dsEdt: TDataSource;
    edtH: TEdit;
    cmbSex: TComboBox;
    LbR: TLabel;
    btnOpen: TBitBtn;
    btnClose: TBitBtn;
    btnSearD: TBitBtn;
    btnSearN: TBitBtn;

    Memo: TMemo;
    qryC: TADOQuery;
    OpenDialog: TOpenDialog;
    CmdA: TADOCommand;
    btnLoad: TBitBtn;
    btnExecSQL: TBitBtn;
    btnDropProc: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnOpenClick(Sender: TObject);
    procedure btnDropProcClick(Sender: TObject);
    procedure btnExecSQLClick(Sender: TObject);
    procedure DBedt0KeyPress(Sender: TObject; var Key: Char);
    procedure dbgACellClick(Column: TColumn);
    procedure btnCloseClick(Sender: TObject);
    procedure btnSearDClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
    procedure btnSearNClick(Sender: TObject);
  private    { Private declarations }
  public     { Public declarations }
  end;

const T=True;  F=False;

var
  fmE23: TfmE23;


////////////////////////////////////////////////////////////////////////////////
implementation

{$R *.dfm}

procedure TfmE23.FormCreate(Sender: TObject);
begin
  dSetA.Connection:=Connect;
  CmdA.Connection:=Connect;
  qryC.Connection:=Connect;

  dbgA.DataSource:=dsA;
  dsA.DataSet:=dSetA;

  DBedt0.DataField:='Birth';
  DBedt0.DataSource:=dsEdt;
  dsEdt.DataSet:=dSetA;

  CmdA.ParamCheck:=T;
  qryC.ParamCheck:=T;

  memo.ShowHint:=T;
  memo.Hint:='此处书写SQL语句';
end;

//==============================================================================
procedure TfmE23.btnOpenClick(Sender: TObject);
begin
  dsA.Enabled:=T;

{
 //方法1
  dSetA.CommandType:=CmdText;
  dSetA.CommandText:='SELECT * From Basic';
  dSetA.Open;
}

//方法2
  cmdA.CommandText:='SELECT * FROM BASIC';
  dSetA.Recordset:=cmdA.Execute;

{
//方法3
  dsA.DataSet:=qryC;
  dsEdt.DataSet:=qryC;
  qryC.Close;
  qryC.SQL.Text:='SELECT * FROM BASIC';
  qryC.Open;
}
end;


//==============================================================================
procedure TfmE23.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  dSetA.Close;
  qryC.Close;
end;

//==============================================================================
procedure TfmE23.btnDropProcClick(Sender: TObject);
begin
  qryC.ParamCheck:=F;
  qryC.Close;
  qryC.SQL.Text:='Drop procedure proc_PP';
  try
    qryC.ExecSQL;
  except
    qryC.Cancel;
    Showmessage('    不存在');
  end;
end;

//==============================================================================
procedure TfmE23.btnExecSQLClick(Sender: TObject);
begin
  qryC.ParamCheck:=F;
  qryC.Close;
  qryC.SQL.Text:=memo.Lines.Text;
  try
    qryC.ExecSQL;
  except
    qryC.Cancel;
    Showmessage('已经存在 或语句错误');
  end;
end;

//==============================================================================
procedure TfmE23.DBedt0KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    dsA.DataSet.Refresh;
end;


//==============================================================================
procedure TfmE23.dbgACellClick(Column: TColumn);
begin
  dsEdt.AutoEdit:=T;
end;

//==============================================================================
procedure TfmE23.btnCloseClick(Sender: TObject);
begin
  dsA.Enabled:=F;
end;

//==============================================================================
procedure TfmE23.btnSearDClick(Sender: TObject);
var
  sx, sh: string;
begin
  dsA.Enabled:=T;

  if cmbSex.Text='男' then
    sx:='M'
  else
    sx:='F';

  sh:=Trim(edtH.Text);

  dSetA.Close;
  dSetA.CommandType:=CmdText;

{
//方法1
  dSetA.CommandText:='SELECT * From Basic Where Sex=''' +sx
      +''' AND High>='+sh;
//---方法1
}

//方法2
  dSetA.Parameters.Clear;
  dSetA.Parameters.CreateParameter('Sex',ftString,pdInput,0,0);
  dSetA.Parameters.CreateParameter('High',ftString,pdInput,0,0);
  dSetA.Parameters.Items[0].Value:=sx;
  dSetA.Parameters.Items[1].Value:=sh;

  dSetA.CommandText:=
    'SELECT * From Basic Where Sex=:sx AND High>=:sh';
//---方法2

  dSetA.Open;
  dbgA.Refresh;
end;

//==============================================================================
procedure TfmE23.btnLoadClick(Sender: TObject);
begin
  OpenDialog.InitialDir:='D:\MyD\';
  if OpenDialog.Execute then
    memo.Lines.LoadFromFile(OpenDialog.FileName);
end;

//==============================================================================
procedure TfmE23.btnSearNClick(Sender: TObject);
var
  sx: String;
  sh: String;
  n: word;
begin
  if cmbSex.Text='男' then
    sx:='M'
  else
    sx:='F';

  sh:=Trim(edtH.Text);
  qryC.ParamCheck:=F;
  qryC.Close;
  qryC.SQL.Text:='Select * From Proc_PP ('+sh+','''+sx+''')';
  qryC.Open;

  n:=qryC.FieldValues['rr'];
//  n:=qryC.Fields[0].Value;
  LbR.Caption:='查到 '+IntToStr(n)+' 条';
end;


end.

⌨️ 快捷键说明

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