请教:
      数据库为 SQL SERVER  2000
      
      我 在 SQL 查询分析器写语句:
      if  exists (select * from sysobjects where id=object_id('ProcAttachDB') and             OBJECTPROPERTY(id,'ISProcedure')=1)
      drop procedure ProcAttachDB可以编译执行
现在我要在 delphi  里写上面的语句:procedure TForm1.Button1Click(Sender: TObject);begin
      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Text:='if  exists (select * from sysobjects where id=object_id('ProcAttachDB') and OBJECTPROPERTY(id,'ISProcedure')=1) drop procedure ProcAttachDB ';
      ADOQuery1.ExecSQL;
end;上面的语句是错误的
请教各位大哥, 在 delphi 我要怎么写啊?谢谢!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);begin
          ADOQuery1.Close;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Text:='if  exists (select * from sysobjects where id=object_id(''ProcAttachDB'') and OBJECTPROPERTY(id,''ISProcedure'')=1) drop procedure ProcAttachDB ';
          ADOQuery1.ExecSQL;
    end;
      

  2.   

    太感谢   paranoia190 大哥  和  winxkm 大哥了paranoia190 大哥  和  winxkm 大哥:
       为什么在 (''ProcAttachDB'') 和  (''ISProcedure'')  加两个 ''  啊
      而   drop procedure ProcAttachDB   没有加呢?
    谢谢!
      

  3.   

    var
      a : string;
    begin
      a := '       abc''d            ';
      showmessage(a);'' --->  '
      

  4.   

    paranoia190  大哥
    那为什么不直接用  '   呢?
    谢谢!
      

  5.   

    C语言\"表示"
    而Delphi ''表示'
    这叫专义
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text:='if exists (select * from sysobjects where id=object_id('''ProcAttachDB''') and OBJECTPROPERTY(id,'''ISProcedure''')=1) drop procedure ProcAttachDB ';
    ADOQuery1.ExecSQL;
    end;調試方法:showmessage(adoquery1.sql.text)同原型一樣才是對的。加引號的專用函數:quotedstr()
      

  7.   

    真是太感谢各位大大了:dreamyyuan 大哥:
                       您好!    ADOQuery1.SQL.Text:='if exists (select * from sysobjects where id=object_id('''ProcAttachDB''') and OBJECTPROPERTY(id,'''ISProcedure''')=1) drop procedure ProcAttachDB ';不能编译啊~~~
    谢谢!
      

  8.   

    procedure TForm1.Button1Click(Sender: TObject);begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Text:='if exists (select * from sysobjects where id=object_id('''ProcAttachDB''') and OBJECTPROPERTY(id,'''ISProcedure''')=1) drop procedure ProcAttachDB ';
    ADOQuery1.ExecSQL;
    end;