sqlcontrol.pas

来自「delphi框架可以学习, 写的很好的」· PAS 代码 · 共 77 行

PAS
77
字号
unit SQLControl;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Basic, ActnList, ImgList, RzPanel, RzButton, ExtCtrls, StdCtrls,
  RzEdit, RzTabs, Grids, DBGridEh, Menus, ppEndUsr, ppBands, ppCache,
  ppClass, ppProd, ppReport, ppDB, ppComm, ppRelatv, ppDBPipe;

type
  TfrmSQL = class(TfrmBasic)
    dbgridList: TDBGridEh;
    mmSQL: TRzMemo;
    RzPanel8: TRzPanel;
    actSQL_Select: TAction;
    actSQL_Insert: TAction;
    actSQL_Delete: TAction;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure doMyOpen(Sender: TObject; var _EventNote, _State: String); override;
  public
    { Public declarations }
  end;

var
  frmSQL: TfrmSQL;

implementation

uses MyPublic, dm32;

{$R *.dfm}

{ TfrmSQL }

procedure TfrmSQL.doMyOpen(Sender: TObject; var _EventNote, _State: String);
var ls_Style, ls_SQL, ls_Err: String;
begin
  ls_SQL := mmSQL.Lines.Text;
  if ls_SQL = '' then Exit;

  _EventNote:= '执行SQL语句:'+ ls_SQL;
  _State := EV_OK;
  ls_Style  := UpperCase(Copy(ls_SQL, 1, 4));

  //取数据
  if ls_Style = 'SELE' then ls_Err := OpenDataSet(dm.qrySQL, ls_SQL);
  //写入数据
  if ls_Style = 'INSE' then
  if ShowMess('提示','确定要按语句添加数据吗?',MB_OKCANCEL) then ls_Err := doSQL(ls_SQL)
                                                             else _State := EV_CANCEL;
  //修改数据
  if ls_Style = 'UPDA' then
  if ShowMess('提示','确定要按语句修改数据吗?',MB_OKCANCEL) then ls_Err := doSQL(ls_SQL)
                                                             else _State := EV_CANCEL;
  //删除数据
  if ls_Style = 'DELE' then
  if ShowMess('提示','确定要按语句删除数据吗?这将是非常危险的操作!',MB_OKCANCEL) then ls_Err := doSQL(ls_SQL)
                                                                                   else _State := EV_CANCEL;

  if ls_Err <> '' then
  begin
    ShowMess('错误', '按指定SQL打开数据失败,具体为:'+ls_Err, MB_OK);
    _State := EV_FAIL;
  end;
end;

procedure TfrmSQL.FormCreate(Sender: TObject);
begin
  inherited;
  UseDataSet := dm.qrySQL;
end;

end.

⌨️ 快捷键说明

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