在delphi中,我想在删除表的记录时提示,以下代码在执行TDataModule1.ADOQueryRun.DELETE
时有提示。但是我用ADOQUERY的SQL命令 DELETE FROM TABLE_NAME where 字段名='某某' 时
却直接删除而没有出现删除提示,请问该如何做让执行SQL 命令时也出现删除提示!
谢谢!procedure TDataModule1.ADOQueryRunSQLBeforeDelete(DataSet: TDataSet);
begin
If Messagebox(0,'删除当前记录?','确认',MB_YESNO)=IDNO then
abort;       
end;

解决方案 »

  1.   

    procedure TDataModule1.ADOQueryRunSQLBeforeDelete(DataSet: TDataSet);
    begin
      if Application.MessageBox('你确定要删除记录吗?','提示',MB_YESNO+MB_ICONINFORMATION)=IDYES then
      abort;       
    end;
      

  2.   

    但是我用ADOQUERY的SQL命令 DELETE FROM TABLE_NAME where 字段名='某某' 时
    却直接删除而没有出现删除提示,请问该如何做让执行SQL 命令时也出现删除提示!//////////////////////////////////执行这种SQL语句不触发该事件,这样写:if Messagebox(0,'删除当前记录?','确认',MB_YESNO)=IDNO then
    begin
        adoquery1.sql.text:=' DELETE FROM TABLE_NAME where 字段名=''某某''';
        adoquery1.execsql;
    end;
      

  3.   

    //更正一下:if Messagebox(0,'删除当前记录?','确认',MB_YESNO)=IDYes then
    begin
        adoquery1.sql.text:=' DELETE FROM TABLE_NAME where 字段名=''某某''';
        adoquery1.execsql;
    end;
      

  4.   

    请问zhangl_cn
    但是如果事先我不知道要执行的SQL是什么(即我把SQL要执行的内容如:
     DELETE FROM TABLE_NAME where 字段名='某某'; 是开给用户使用的。)即SQL语句是由他们自己输入来执行的,那么是否除了判断SQL语句有没有存在 Delete 之类的字符来,如果有的话就调用提示语句?可有更好的方法?谢谢!
      

  5.   

    你的用户这么了解SQL啊?你如果让用户来输入的话,肯定只是输入几个限定条件而已吧.不会是整个SQL语句吧在Edit_OnChange里写.把你预定的SQL语句写在一个表里。Edit输入改变的时候,去查询下,有类似的马上显示在一个可以隐藏的Listview里,让用户去选择.例如用户输入DELETE ,则查询表里DELETE开始的语句.有则将Listview.Visible由原来的False变为true,记录全部显示在ListView里.待用户选择完,Listview.Visible为False.清空listview