create procedure del
@id varchar(6)
as
if Exists(select 客户编号 from 商品报价表 where 客户编号=@id)
delete from 商品报价表 where 客户编号=@idprocedure TForm1.Button4Click(Sender: TObject);
begin
  with ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add('Exec del '+Edit1.Text+'');
    ExecSQL;
  end;
  ADOTable2.Close;
  ADOTable2.Open;
end;
这样调用运行时说没有找到存储过程, 高手指点迷津!

解决方案 »

  1.   

    楼主参考一下源码:var 
          spSel:   TADOStoredProc; 
    begin 
            with   spSel   do 
            begin 
                close; 
                ProcedureName   := 'p_my_insert;1 '; 
                Parameters.Refresh;//* 
                Parameters.ParamByName( '@myn1 ').Value:=trim(Edit2.Text); 
                Parameters.ParamByName( '@myn2 ').Value:=trim(Edit3.Text); 
                Parameters.ParamByName( '@myn3 ').Value:=trim(Edit4.Text); 
                try 
                    open;                 
                except 
                end; 
            end; 
    end;
      

  2.   

    'Exec del '+QuotedStr(Edit1.Text)
      

  3.   

    字符的表达问题,D中的字体表示,特别在处理SQL语句时,需要进行处理.如:'''''',QuotedStr等.
      

  4.   

      with ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('Exec del '+ QuotedStr(Edit1.Text));
        ExecSQL;
      end;
      ADOTable2.Close;
      ADOTable2.Open;