datamodule2.ADOQuery_dj.SQL.Add('DECLARE @gz char(8),@aa varchar(30)');
 datamodule2.ADOQuery_dj.SQL.Add('set  @gz = '''+gzdj+'''');
 datamodule2.ADOQuery_dj.SQL.Add('set @aa=''select ''+@gz+'' from  DJB  where bh='''+ggbm+''' and cjmc='''+cjmc+''''');
 datamodule2.ADOQuery_dj.SQL.Add('exec(@aa)');

解决方案 »

  1.   

    单引号多了看的头疼,而且容易出错,建议使用#39,如:
    datamodule2.ADOQuery_dj.SQL.Add('set  @gz = , + #39 + gzdj+ #39);
      

  2.   

    datamodule2.ADOQuery_dj.SQL.Add('set  @gz =' + #39 + gzdj+ #39);
      

  3.   

    datamodule2.ADOQuery_dj.SQL.Add('DECLARE @gz char(8),@aa varchar(30)');
    datamodule2.ADOQuery_dj.SQL.Add('set @gz = '+QuotedStr(gzdj)+'');
    datamodule2.ADOQuery_dj.SQL.Add('set @aa=''select ''+@gz+'' from DJB where bh='+quotedstr(ggbm)+' and cjmc='+quotedstr(cjmc)+'');
    datamodule2.ADOQuery_dj.SQL.Add('exec(@aa)');