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

📄 crossparam.~pas

📁 采用Delphi7+Oracle. 该软件是由交警人员对各个路口闯红灯违法照片进行有效保存
💻 ~PAS
字号:
unit CrossParam;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ToolWin, ImgList, Grids, DBGrids,DB,ADODB;

type
  TfrmCrossParam = class(TForm)
    ImageList1: TImageList;
    ToolBar1: TToolBar;
    btnAdd: TToolButton;
    btnEdit: TToolButton;
    ToolButton2: TToolButton;
    btnSave: TToolButton;
    ToolButton5: TToolButton;
    btnDel: TToolButton;
    btnCancel: TToolButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edtID: TEdit;
    edtName: TEdit;
    edtMemo: TEdit;
    dgDB: TDBGrid;
    procedure FormShow(Sender: TObject);
    procedure dgDBCellClick(Column: TColumn);
    procedure btnAddClick(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure execute_sql(sql:String);
    procedure item_clear;
    function Check_HaveData:Boolean;

    { Public declarations }
  end;

var
  frmCrossParam: TfrmCrossParam;
  crossSql:String;  //用于sql操作的
  flag:boolean;
implementation

uses dbConn;

{$R *.dfm}

procedure TfrmCrossParam.FormShow(Sender: TObject);
begin
    btnSave.Enabled := false;
    edtID.Enabled := false;
    edtName.Enabled := false;
    edtMemo.Enabled := false;
    crossSql:='SELECT COMPUTERID,CROSSNAME,CROSSMEMO FROM photocheck.P_CROSSING';
    self.execute_sql(crossSql);
end;
procedure TfrmCrossParam.execute_sql(sql:String);
var
    ds:TDataSource;
    rs:TADODataSet;
begin
    try
        ds:=TDataSource.Create(nil);
        rs:=TADODataSet.Create(nil);
        rs.Connection := cn_public;
        rs.CommandText :=sql;
        rs.Open ;
        rs.Active := true;
        dgDB.DataSource :=ds;
        ds.DataSet := rs;

    except
    on E:Exception do   begin
       ds.Free ;
       rs.Free ;
    end;
end;
end;




procedure TfrmCrossParam.dgDBCellClick(Column: TColumn);
begin
    btnAdd.Enabled := true;
    btnEdit.Enabled := true;
    btnSave.Enabled := false;
    btnDel.Enabled := true;
    edtId.Enabled := false;
    edtName.Enabled := false;
    edtMemo.Enabled := false;

    edtID.Text := dgDB.DataSource.DataSet.FieldByName('COMPUTERID').AsString ;
    edtName.Text := dgDB.DataSource.DataSet.FieldByName('CROSSNAME').AsString ;
    edtMemo.Text := dgDB.DataSource.DataSet.FieldByName('CROSSMEMO').AsString ;
end;

procedure TfrmCrossParam.item_clear;
begin
    edtID.Text :='';
    edtName.Text :='';
    edtMemo.Text :='';
end;
function TfrmCrossParam.Check_HaveData:Boolean ;
begin
    if edtID.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','路口信息',64);
        edtID.SetFocus ;
        result:= false;
        exit;
    end;
    if edtName.Text='' then
    begin
        messagebox(0,'该信息不允许为空!','路口信息',64);
        edtName.SetFocus ;
        result:= false;
        exit;
    end;
    result:= true;
end;


procedure TfrmCrossParam.btnAddClick(Sender: TObject);
begin
    btnAdd.Enabled := false;
    btnEdit.Enabled := false;
    btnSave.Enabled := true;
    btnDel.Enabled := false;
    edtID.Enabled := true;
    edtName.Enabled := true;
    edtMemo.Enabled := true;
    self.item_clear;
    edtId.SetFocus ;
    flag:= true;  //若为true时,为添加数据
end;


procedure TfrmCrossParam.btnEditClick(Sender: TObject);
begin
    if (edtID.Text<>'') and (edtName.Text<>'') then
    begin
        btnAdd.Enabled := false;
        btnEdit.Enabled := false;
        btnSave.Enabled := true;
        btnDel.Enabled := false;
        edtID.Enabled := false;  //计算机编号不允许编辑
        edtName.Enabled := true;
        edtMemo.Enabled := true;
        flag:= false;   //标记为修改状态
    end
    else
        messagebox(0,'无数据编辑!','路口信息',64);
end;


procedure TfrmCrossParam.btnSaveClick(Sender: TObject);
var
   rs:TADODataSet;
begin
    if Check_HaveData=true then
    begin
        if flag=true then   //true;Add状态
        begin
            crossSql:='';
            crossSql:='SELECT COMPUTERID,CROSSNAME FROM photocheck.P_CROSSING WHERE COMPUTERID='''+trim(edtID.Text )+'''';//计算机编号应是唯一的,但是路口名称却不唯一 and CROSSNAME='''+trim(edtName.Text )+'''';
            rs:=TADODataSet.Create(nil);
            rs.Connection := cn_public;
            rs.CommandText := crossSql;
            rs.Open ;
            if rs.Recordset.RecordCount >0 then
            begin
                rs.Close ;
                messagebox(0,'已存在该条数据!','路口信息',16);
                edtID.SelectAll ;
                edtID.SetFocus ;
                exit;
            end
            else   //若没有该数据,则插入
            begin
                rs.Close ;
                crossSql:='';
                crossSql:='INSERT INTO photocheck.P_CROSSING (COMPUTERID,CROSSNAME,CROSSMEMO) VALUES(';
                crossSql:= crossSql + ' '''+trim(edtId.Text )+''',';
                crossSql:= crossSql + ' '''+trim(edtName.Text)+''',';
                crossSql:= crossSql + ' '''+trim(edtMemo.Text)+''')';
                dbConn.Execute_SQL(crossSql);
                crossSql:='';
                crossSql:='SELECT COMPUTERID,CROSSNAME,CROSSMEMO FROM photocheck.P_CROSSING';
                self.execute_sql(crossSql);
                messagebox(0,'添加成功!','路口信息',64);
                edtId.Enabled := false;
                edtName.Enabled := false;
                edtMemo.Enabled := false;
                self.item_clear ;
            end;
        end
        else
        if flag=false then  //false :处于编辑状态
        begin
            crossSql:='';
            crossSql:='UPDATE photocheck.P_CROSSING SET CROSSNAME='''+trim(edtName.Text)+''' , CROSSMEMO='''+trim(edtMemo.Text)+''' WHERE COMPUTERID='''+trim(edtID.Text)+'''';
            dbConn.Execute_SQL(crossSql);
            crossSql:='';
            crossSql:='SELECT COMPUTERID,CROSSNAME,CROSSMEMO FROM photocheck.P_CROSSING';
            self.execute_sql(crossSql);
            messagebox(0,'修改成功!','路口信息',64);
        end;
        self.item_clear ;
        btnAdd.Enabled := true;
        btnEdit.Enabled := true;
        btnSave.Enabled := false;
        btnDel.Enabled := true;
        edtID.Enabled := false;
        edtName.Enabled := false;
        edtMemo.Enabled := false;
    end;
end;

procedure TfrmCrossParam.btnDelClick(Sender: TObject);
begin
    if (edtID.Text<>'') and (edtName.Text<>'') then
    begin
        if messagedlg('你确定要删除这个 '+edtID.Text+' 计算机编号吗?',mtConfirmation,[mbYes,mbno],0)=mrYes then
        begin
            crossSql:='';
            crossSql:='DELETE FROM photocheck.P_CROSSING WHERE COMPUTERID='''+trim(edtID.Text)+'''';
            dbConn.Execute_SQL(crossSql);
            crossSql:='';
            crossSql:='SELECT COMPUTERID,CROSSNAME,CROSSMEMO FROM photocheck.P_CROSSING';
            self.execute_sql(crossSql);
            self.item_clear ;
            messagebox(0,'成功删除!','路口信息',64);
        end
        else
        begin
            exit;
        end;
        btnAdd.Enabled := true;
        btnEdit.Enabled := true;
        btnSave.Enabled := false;
        btnDel.Enabled := true;
        edtID.Enabled :=false;
        edtName.Enabled := false;
        edtMemo.Enabled := false;
    end
    else  //无数据删除
    begin
        messagebox(0,'无数据删除!','路口信息',64);
    end;
end;

procedure TfrmCrossParam.btnCancelClick(Sender: TObject);
begin
    self.item_clear ;
    btnAdd.Enabled := true;
    btnEdit.Enabled := true;
    btnSave.Enabled := false;
    btnDel.Enabled := true;
    edtID.Enabled := false;
    edtMemo.Enabled := false;
    edtName.Enabled := false;
end;



end.

⌨️ 快捷键说明

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