数据库维护

简介:

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




相关文章
|
16天前
|
人工智能 JSON 移动开发
AI 试衣服从“娱乐玩具”到真正可商用的能力进化
玩美移动AI Clothes技术专攻商业级虚拟试衣,突破通用大模型局限,实现服装结构精准还原、多体型真实适配、只换衣不换人。支持电商、APP快速集成,推动AI试衣从娱乐走向高转化零售应用。
226 0
|
8月前
|
机器学习/深度学习 人工智能 边缘计算
AI驱动的开源治理——社会综合治理智慧化系统的技术突破
通过AI识别与智能监控精准捕捉不文明行为,生成证据链并分级预警,识别精度达98%;跨部门联动平台打破信息孤岛,实现多部门高效协作,事件处置时间缩短至5分钟;多场景适配的开源架构支持景区、校园等多样化需求,灵活部署边缘计算优化性能。试点成效显著,大幅提升治理效能。
290 14
|
JSON Dart Android开发
Flutter 2024: Impeller引擎引领渲染新纪元
Flutter 2024以Impeller引擎引领渲染新时代,全面提升性能与流畅度。Impeller已在iOS及Android(支持Vulkan/OpenGL)全面部署,Material 3集成深化视觉体验,多视图支持增强复杂UI管理。Dart 3.2与3.4版本迭代优化语言特性与性能,引入宏编程简化JSON处理。桌面与Web端持续优化,深化平台适配。
670 14
|
JavaScript 开发者
[vue2/vue3] -- 深入剖析v-model的原理、父子组件双向绑定的多种写法
[vue2/vue3] -- 深入剖析v-model的原理、父子组件双向绑定的多种写法
[vue2/vue3] -- 深入剖析v-model的原理、父子组件双向绑定的多种写法
|
存储 Kubernetes Cloud Native
2021年11个我们喜爱的DevOps开源工具
2021年11个我们喜爱的DevOps开源工具
934 0
|
安全 Unix Linux
Linux系统之使用cmatrix实现数字雨效果
【10月更文挑战第16天】Linux系统之使用cmatrix实现数字雨效果
341 2
Linux系统之使用cmatrix实现数字雨效果
|
XML 小程序 前端开发
小程序制作教程
小程序制作教程
1070 3
小程序制作教程
|
存储 缓存 Cloud Native
阿里云 ClickHouse 企业版云原生 ClickHouse 技术揭秘
云数据库 ClickHouse 企业版是阿里云和 ClickHouse, Inc 战略合作打造的云原生ClickHouse 产品。企业版推出专属 SharedMergeTree 云原生引擎,支持存算分离,Serverless 秒级实时弹性,集群吞吐和查询效率线性扩展及 Lightweight update 实时更新能力。本文将详细揭秘 SharedMergeTree 实现机制,实时弹性扩展实现原理,lightweight update 技术实现原理,同时对企业版和开源版进行详细的性能测试对比。
2286 1
阿里云 ClickHouse 企业版云原生 ClickHouse 技术揭秘
|
开发框架 安全 .NET
『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core
使用 IIS 在 Windows 上托管 ASP.NET Core
1356 0
『部署实操』使用 IIS 在 Windows 上托管 ASP.NET Core
|
机器学习/深度学习 存储 TensorFlow

热门文章

最新文章