就是我在用DBEdit、StaticText、ComboBox组件制作数据单(表单)时
我要删除显示出来的一条记录,
代码如下:
With ADOQuery1 do
 begin
     SQL.Clear;
     SQL.ADD('DELETE From Book Where Code=:ComboBox1.text');
     execsql;
 end;
这样不能执行其删除操作,这是为什么!

解决方案 »

  1.   

    var
       sth : string;
    begin
    sth :='DELETE From Book Where Code=:ComboBox1.text' 
    With ADOQuery1 do
     begin
         SQL.Clear;
         SQL.ADD(sth );
         execsql;
     end;
    这样就可以啦
      

  2.   

    你的combobox1.text这样表示应该是参数!
    你应该这样做
    With ADOQuery1 do
     begin
        close;
         SQL.Clear;
         SQL.ADD('DELETE From Book Where Code='+ComboBox1.text);
         execsql;
     end;
      

  3.   

    把combobox1.text得值作为一个参数传进去
    With ADOQuery1 do
     begin
        close;
         SQL.Clear;
         SQL.ADD('DELETE From Book Where Code= :code');
         parmaeters.parambyname('code').value := combobox1.text;
         execsql;
     end;
      

  4.   

    建议使用楼上的写法。
    在DELPHI中,经常会牵涉到这种动态SQL语句的写法。
      

  5.   

    你的combobox1.text是作为参数赋给code的

    With ADOQuery1 do
     begin
         SQL.Clear;
         SQL.ADD('DELETE From Book Where Code='+quotedstr(ComboBox1.text));
         execsql;
     end;
    就可以了