数据库维护

简介:

1.设置初始条件。

private:

addflag:boolean

modiflag:boolean

var:

  strSQLCondition,strOrderCondition:string;

(保存按钮)btnsave.enabled := false;

(取消按钮)btncancel.enabled := false;

(添加,删除,更改)按钮 button.enabled := false;

2.设置添加(add)

addflag:=true;

modiflag:=false;

(保存按钮)btnsave.enabled := true;

(取消按钮)btncancel.enabled := true;

3.设置修改(ALTER)

modiflag:=true;

addflag := false;

(保存按钮)btnsave.enabled := true;

(取消按钮)btncancel.enabled := true;

4.设置删除(delete)

  if addflag = True then
  begin
    Application.MessageBox('正处于新增状态,请选择要删除的项目',
                              '项目设置',mb_OK+MB_ICONinformation);
    abort;
  end;    //新增状态下不予删除

  alterflag := true;
  addflag := False;

判断删除条件,符合后进行删除。

  if dbgrdh1.FieldColumns['项目名称'].DisplayText = '' then
  begin
    Application.MessageBox('请选择要删除的项目',
                              '项目设置',mb_OK+MB_ICONinformation);
    abort;
  end;

  if MessageBox(self.Handle,pchar('你确定将'+trim(dbgrdh1.FieldColumns['项目名称'].DisplayText)+' 项目删除吗?'),'提示信息',MB_ICONQUESTION+MB_YESNO)=ID_YES then
  begin
  str_sql := 'select fl from zd_flzd where flmc = ' + quotedstr(trim(dbgrdh1.FieldColumns['分类名称'].DisplayText));
  with qry_alter do
  begin
    close;
    sql.clear;
    sql.add(str_sql);
    open;
  end;
  qry_alter.first;
  Fl := qry_alter.fieldbyname('fl').asstring;

  str_sql := 'delete from zd_gbxx where code = ' + quotedstr(trim(dbgrdh1.FieldColumns['编码'].DisplayText))
  + ' and  xm = ' + quotedstr(trim(dbgrdh1.FieldColumns['项目名称'].DisplayText))
  + ' and fl = ' + quotedstr(Fl);
  with qry_alter do
  begin
    close;
    sql.clear;
    sql.add(str_sql);
    execsql;
  end;
  dxbrbtn34Click(Sender);//查询按钮

5.设置保存按钮(save)

    if edt_flmc.text = '' then
    begin
    Application.MessageBox('分类名称不能为空!已取消。',
                              '设置',mb_OK+MB_ICONinformation);
    abort;
  end;
  if edt_xm_2.text = '' then
    begin
    Application.MessageBox('项目名称不能为空!已取消。',
                              '设置',mb_OK+MB_ICONinformation);
    abort;
  end;

 

 if (edt_flmc.Text <> '') then
  begin
    str_sql := 'select fl from zd_flzd where flmc = ' + quotedstr(trim(edt_flmc.text));
    with qry_alter do
    begin
      close;
      sql.clear;
      sql.add(str_sql);
      open;
    end;
    qry_alter.first;
    Fl := qry_alter.fieldbyname('fl').asstring;

    str_sql := 'select code,xm from zd_gbxx where code = ' + quotedstr(Trim(edt_code.Text))+ ' and xm= '+ quotedstr(Trim(edt_xm.Text));
    with qry_alter do
    begin
      close;
      sql.clear;
      sql.add(str_sql);
      open;
    end;
    if qry_alter.RecordCount >= 1 then
    begin
          Application.MessageBox('该项目已存在!已取消添加。',
                              '设置',mb_OK+MB_ICONinformation);
      abort;
    end
    else if qry_alter.RecordCount = 0 then
    begin
    str_sql := 'insert into zd_gbxx(code,Fl,XM,DM,WBX) values(' + QuotedStr(Trim(edt_code.Text))+','
    +QuotedStr(fl)+','
    +QuotedStr(Trim(edt_XM_2.Text))+','
    +QuotedStr(Trim(edt_DM.Text))+','
    +QuotedStr(Trim(edt_wbx.Text))
    + ')';
    with qry_alter do
    begin
      Close;
      SQL.Clear;
      SQL.Add(str_sql);
      ExecSQL;
    end;
    end;
  dxbrbtn34Click(Sender);

////////////////////////////////////////////

  if alterflag = True then
  begin
    if edt_flmc.text = '' then
    begin
      Application.MessageBox('分类名称不能为空!已取消。',
                              '设置',mb_OK+MB_ICONinformation);
      abort;
    end;
    if edt_xm_2.text = '' then
    begin
      Application.MessageBox('项目名称不能为空!已取消。',
                              '设置',mb_OK+MB_ICONinformation);
      abort;
    end;
    if (edt_flmc.Text <> '') then
    begin
      str_sql := 'select fl from zd_flzd where flmc = ' + quotedstr(trim(edt_flmc.text));
      with qry_alter do
      begin
        close;
        sql.clear;
        sql.add(str_sql);
        open;
      end;
      qry_alter.first;
      Fl := qry_alter.fieldbyname('fl').asstring;
      str_sql := 'update zd_gbxx set code = '
      + quotedstr(Trim(edt_code.Text))
      + ' where fl = ' + quotedstr(fl) 
      + ' and xm = ' + quotedstr(trim(dbgrdh1.FieldColumns['项目名称'].DisplayText))
      + ' and DM = ' + QuotedStr(Trim(dbgrdh1.FieldColumns['拼音代码'].DisplayText));
      with qry_alter do
      begin
        close;
        sql.clear;
        sql.add(str_sql);
        execsql;
      end;
      dxbrbtn34Click(Sender);
    end;
  end;

6.设置取消按钮。

  addflag := false;
  alterflag := False;
  edt_code.Text := '';
  edt_DM.Text := '';
  edt_XM_2.Text := '';
  edt_flmc.Text := '';
  edt_wbx.Text := '';

7.另一种添加,更改,删除的方法。利用parameters.parambyname('').value := ..

with adoquery do
begin
close;
sql.Clear;
sql.Add('insert into  gzyb (姓名,职务) values(:xm,:zw)');
Parameters.ParamByName('xm').Value:=trim(xmedit.Text);
Parameters.ParamByName('zw').Value:=trim(zwedit.Text);
execsql;
showmessage('添加成功!');
xmedit.Text:='';
zwedit.Text:='';
end;

////////////////////////////////////////////////////////////////////////

try
with adoquery do
begin
close;
sql.Clear;
sql.Add('delete from gzyb where 姓名=:xm');
Parameters.ParamByName('xm').Value:=trim(xmedit.Text);
execsql;
showmessage('删除成功!');
xmedit.Text:='';
zwedit.Text:='';
end;
except
showmessage('删除失败!');
end;

///////////////////////////////////////////////////////////////////

try
with adoquery do
begin
close;
sql.Clear;
sql.Add('update gzyb set 职务=:zw where 姓名=:xm');
Parameters.ParamByName('xm').Value:=trim(xmedit.Text);
Parameters.ParamByName('zw').Value:=trim(zwedit.Text);
execsql;
showmessage('修改成功!');
xmedit.Text:='';
zwedit.Text:='';
end;
 except
showmessage('修改失败!');
end;

 








本文转自鹅倌51CTO博客,原文链接: http://blog.51cto.com/kaixinbuliao/955993,如需转载请自行联系原作者




相关文章
|
3月前
|
存储 关系型数据库 MySQL
mysql数据库如何做到定期备份
mysql数据库如何做到定期备份
291 2
|
7月前
|
存储 Oracle 算法
数据库数据恢复-ORACLE数据库常见故障的数据恢复可能性分析
ORACLE数据库常见故障: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE数据库ASM存储破坏。 3、ORACLE数据库数据文件丢失。 4、ORACLE数据库数据文件部分损坏。 5、ORACLE数据库DUMP文件损坏。
|
10月前
|
SQL 关系型数据库 MySQL
线上数据库锁表?明天就要上线?
线上数据库锁表?明天就要上线?
71 0
|
存储 运维 安全
数据库运维之InnoDB存储引擎表损坏修复方法
InnoDB存储引擎表的损坏可能是多种因素导致的,比如服务器断电、系统崩溃、硬盘损坏、写数据过程中mysqld进程被kill掉。
930 0
|
关系型数据库 MySQL 数据库
数据库手动备份和定时备份小技巧,不用再跑路了
最近刚好用到了数据库备份,想着还有个别实习或者刚工作的小伙伴一个drop不小心删表、删库,心内慌得一批不知道该怎么办,就打算跑路了…
121 0
数据库手动备份和定时备份小技巧,不用再跑路了
|
SQL 关系型数据库 数据库
数据库维护
ORACLE、DB2、SYBASE、MS SQL等数据库软件维护服务,保障数据库系统软件稳定运行和数据安全。 一.维护内容 日志检查分析 软件版本、补丁程序检查 数据表空间、状态检查 数据备份与恢复策略 补丁升级 故障排查、定位、处理与解决 数据迁移 性能调优 紧急救援服务 (广东励康)
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 24 章 日常数据库维护工作_24.3. 日志文件维护
24.3. 日志文件维护 把数据库服务器的日志输出保存在一个地方是个好主意, 而不是仅仅通过/dev/null丢弃它们。 在进行问题诊断的时候,日志输出是非常宝贵的。不过,日志输出可能很庞大(特别是在比较高的调试级别上), 因此你不会希望无休止地保存它们。
1204 0
|
SQL 监控 关系型数据库