数据库维护

简介:

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,如需转载请自行联系原作者




相关文章
|
SQL 关系型数据库 数据库
数据库维护
ORACLE、DB2、SYBASE、MS SQL等数据库软件维护服务,保障数据库系统软件稳定运行和数据安全。 一.维护内容 日志检查分析 软件版本、补丁程序检查 数据表空间、状态检查 数据备份与恢复策略 补丁升级 故障排查、定位、处理与解决 数据迁移 性能调优 紧急救援服务 (广东励康)
|
7月前
|
存储 Oracle 关系型数据库
分享几个Oracle数据库日常维护中常见的问题
分享几个Oracle数据库日常维护中常见的问题
216 1
|
SQL 监控 关系型数据库
|
SQL 运维 测试技术
记一次由于操作失误致使数据库瘫痪的故障分析与解决方案
在这篇文章中,我将分享一次由于操作不当导致数据库瘫痪的经验。通过回顾故障发生的时间、系统简介、时间线、问题分析和经验总结等方面的内容。讨论操作时间不当、操作流程不当、缺乏执行计划和限流机制等问题,并提出一些建议,如确认数据库更新时间、优化更新操作、使用限流工具、设置超时时间和重试机制、调整数据库参数以及定期维护和优化数据库。通过分享这次经验,我希望能帮助他人避免类似的错误,并提高数据库操作的准确性和稳定性。
137 0
|
SQL 存储 缓存
数据库优化
昨天遇到一个问题, 200万的表里查询9万条数据, 耗时达63秒. 200万数据不算多, 查询9万也还好. 怎么用了这么长的时间呢? 问题是一句非常简单的sql.
217 0
数据库优化
|
算法 调度 数据库
|
SQL 关系型数据库 MySQL
关于数据库优化你知道多少?
关于数据库优化你知道多少?
193 0
|
4月前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
64 1
|
SQL 数据库 索引
数据库优化四个方面
数据库优化四个方面
145 0

热门文章

最新文章