你的那个 :GG是SQL的参数~~应该这样Close;
      SQL.clear;
      SQL。add('Select 瓷砖编号 from 瓷砖编号 where 瓷砖编号.规格编号='+
                '(Select 规格编号 from 瓷砖规格 where'+
                '规格编号.规格=:GG)');
   ParamByName('GG').Value :=GG;//这里是你的定义的字符串  
      Open;
      

解决方案 »

  1.   

    在Open前加
    ParamByName('GG').AsString := GG;
      

  2.   

    To sleepwalk:
    我试过,还是不对。To tikkypeng:
    一定得加这一句吗?
      

  3.   

    不一定~~可以这样SQL.clear;
          SQL。add('Select 瓷砖编号 from 瓷砖编号 where 瓷砖编号.规格编号='+
                    '(Select 规格编号 from 瓷砖规格 where'+
                    '规格编号.规格='+#39+GG+#39+')');
          Open;
      

  4.   

    同意tikkypeng的方法这个sql语句里用‘规格编号.规格=:GG’等于是等于GG,而不是等于GG代表的字符串
    我写的太急,直接用了sql语句,错了,抱歉~~``