zoukankan      html  css  js  c++  java
  • 在使用ADOQuery删除数据时的处理 [问题点数:100分,结帖人isdxsc]

    在使用ADOQuery删除数据时的,希望在他的事件BeforeDelete进行一些判断,符合要求的进行删除,不符合要求的终止这个删除行为,请问应该用什么语句呢?
    还有个比较奇怪的现象也一起请教:DBGrid的Option里,dgConfirmDelete已经设置为False,为什么我每次删除数据时,都要出个对话框询问是否删除呢?
    Abort这个不得。

    BeforeDelete中写
    if A=B then abort;//这个方法在我这测试可行啊,无论是单选还是多选都可以

    至于第二个问题,建议您自己查一下是否在Delete前写了提示语句,又或者是在程序用动态设置了ADOQuery的Option,如果还没解决的话,自己新拖一个ADOQuery,对比一下默认设置跟‘出错设置’的不同就知道了

    if A=true then
    begin
      raise Exception.Create('此条记录不允许删除!');
      abort;
    end;

    我的ADOQuery与DataSource都是动态创建的,DBGrid是放在窗口的组件,列是动态创建的。。。

    先谢谢楼上两位,再测试下。

    第二个问题已经解决了,确实是DBNavigator的ConfirmDelete属性问题。

    但第一个问题还是存在。
    DictionaryQuery.BeforeDelete := DictionaryQueryBeforeDelete;

    procedure TFrmDictionary.DictionaryQueryBeforeDelete(DataSet: TDataSet);
    begin
      try
        showmessage('Abort');  这个显示
        Abort;
        showmessage('终止');   这个不显示
      except
      end;
    end;
    但数据依然被删除。这个问题应该和DBGrid的Options设置没有关系的吧。

    1、不要在BeforeDelete事件写代码,新建一个删除按纽的click事件中写就不存在这些问题。
      if .....  then adoquery1.delete;

    2、我在DBGrid编辑数据时尽量不用它的插入功能和删除功能,只用它的编辑功能,因为插入和删除有时需要一些操作,还是用两个按纽来实现。

  • 相关阅读:
    python安装mysqldb
    2月8日
    python反射机制
    python备忘
    Nginx+Tomcat动静分离及Nginx优化
    yum挂在iso文件yum源配置
    升级apache
    解决编译apache出现的问题:configure: error: APR not found . Please read the documentation
    学习网站总结
    面试题:登录页面测试
  • 原文地址:https://www.cnblogs.com/jijm123/p/7459116.html
Copyright © 2011-2022 走看看