SELECT   gsdj.qymc as '企业名称',null as '注销日期'
    FROM gsdj where qymc like '%光%'            
union all
  SELECT fgsdj.qymc,null        
    FROM fgsdj where qymc like '%光%'                             
union all
  SELECT nzfrdj.qymc,null        
    FROM nzfrdj where qymc like '%光%'                               
union all
  SELECT nzyydj.qymc,null        
    FROM nzyydj where qymc like '%光%' 
请问以上sql语句以query.sql.text=?形式该怎么写。其中的光用一个变量代替。是不是不能换行啊,是不是%不能直接写啊。

解决方案 »

  1.   

    var
      str:string;
    query.sql.text=
    'SELECT   gsdj.qymc as ''企业名称'',null as ''注销日期''
        FROM gsdj where qymc like ''%''+str+''%''            
    union all
      SELECT fgsdj.qymc,null        
        FROM fgsdj where qymc like ''%''+str+''%''                                     
    union all
      SELECT nzfrdj.qymc,null        
        FROM nzfrdj where qymc like ''%''+str+''%''                               
    union all
      SELECT nzyydj.qymc,null        
        FROM nzyydj where qymc like ''%''+str+''%'''
      

  2.   

    query.sql.text='SELECT   gsdj.qymc as ''企业名称'',null as ''注销日期'' ' 
        + ' FROM gsdj where qymc like ''' + '%' + varName + '%'  
        + ''' union all  SELECT fgsdj.qymc,null FROM fgsdj where qymc like ''' 
        +  '%' + varName + '%' + ''' union all SELECT nzfrdj.qymc,null '       
        + ' FROM nzfrdj where qymc like ''' + '%' + varName + '%' 
        + ''' union all SELECT nzyydj.qymc,null '  
        + ' FROM nzyydj where qymc like ''' + '%' + varName + '%' + '''';
      

  3.   

    要把单引号替换成两个单引号,还有 AS后面的字符串不要带单引号。
    Var
    SQLSTR:String;
    Begin
    SQLSTR:='SELECT   gsdj.qymc as 企业名称,null as 注销日期
        FROM gsdj where qymc like ''%光%''            
    union all
      SELECT fgsdj.qymc,null        
        FROM fgsdj where qymc like ''%光%''                             
    union all
      SELECT nzfrdj.qymc,null        
        FROM nzfrdj where qymc like ''%光%''                               
    union all
      SELECT nzyydj.qymc,null        
        FROM nzyydj where qymc like ''%光%'' 'End;把SQLSTR赋值给组件SQL属性就可以了,
      

  4.   

    Query.Sql.Add('SELECT   gsdj.qymc as ''企业名称'',null as ''注销日期''');
      Query.Sql.Add('  FROM gsdj where qymc like ''%:pName%''');
      Query.Sql.Add('union all');
      Query.Sql.Add('SELECT fgsdj.qymc,null');
      Query.Sql.Add('  FROM fgsdj where qymc like ''%:pName%''');
      Query.Sql.Add('union all');
      Query.Sql.Add('SELECT nzfrdj.qymc,null');
      Query.Sql.Add('  FROM nzfrdj where qymc like ''%:pName%''');
      Query.Sql.Add('union all');
      Query.Sql.Add('SELECT nzyydj.qymc,null');
      Query.Sql.Add('  FROM nzyydj where qymc like ''%:pName%''');
      Query.Sql.Text:=StringReplace(Query.SQl.Text,':pName',NewValue,[rfReplaceAll, rfIgnoreCase]);
      

  5.   

    方法一:Query.Sql.Text:='SELECT   gsdj.qymc as''''企业名称'+''','null as ''''注销日期''''
        FROM gsdj where qymc like ''''%光%''''            
    union all
      SELECT fgsdj.qymc,null        
        FROM fgsdj where qymc like ''''%光%''''                             
    union all
      SELECT nzfrdj.qymc,null        
        FROM nzfrdj where qymc like ''''%光%''''                               
    union all
      SELECT nzyydj.qymc,null        
        FROM nzyydj where qymc like ''''%光%''''
    方法二:
    Query.Sql.Text:='SELECT   gsdj.qymc as '+QuotedStr('企业名称')+',null as'+ QuotedStr( '注销日期')+'    FROM gsdj where qymc like '+QuotedStr('%光%')+'            
    union all
      SELECT fgsdj.qymc,null        
        FROM fgsdj where qymc like '+QuotedStr('%光%')+'            
    union all
      SELECT nzfrdj.qymc,null        
        FROM nzfrdj where qymc like  '+QuotedStr('%光%')+'            
    union all
      SELECT nzyydj.qymc,null        
        FROM nzyydj where qymc like '+QuotedStr('%光%')
      

  6.   

    1)用变量把sqltext都包括进去
    2)用sqltext
    3)用sql.add
    4)用容器,比如放到memo1去,用sql.AddStrings(memo1.lines)5)下边的接上...