QueryHZ.fieldbyname('类别').AsString的值为:copy(人员类别,1,3)='605' 
什么意思?

解决方案 »

  1.   

    QueryGZ.SQL.Clear; QueryGZ.SQL.Add('Select a.Name_ID,b.姓名,a.月份,'); QueryGZ.SQL.Add('sum(a.基本工资),sum(a.公差工资),sum(a.产婚丧伤工资),sum(a.其他工资),sum(a.事旷)'); QueryGZ.SQL.Add(' From 工资发放表 a,员工名册表 b '); QueryGZ.SQL.Add(' Where ('+QueryHZ.fieldbyname('类别').AsString+')'); //什么?举个例子:
    QueryGZ.SQL.Add(' Where A.类别='''+QueryHZ.fieldbyname('类别').AsString+'''');
    QueryGZ.Open; 
      

  2.   

    类别  这个字段的内容是copy(人员类别,1,3)='605' 
    想用这个条件做判断!
    另外,有没有把字段的内容替换出来做命令的?类似于fox中的&宏替换。
      

  3.   

    subsstring也不行!!!
    怎么办?
      

  4.   

    把你有copy的那一句贴出来看看。
      

  5.   

    QueryGZ.SQL.Add(' Where ('+QueryHZ.fieldbyname('类别').AsString+')'); 类别 这个字段的内容是:copy(人员类别,1,3)='605' 
      

  6.   

    你用什么数据库
    db库
    SUBSTRING(column_reference FROM start_index [FOR length])sqlserver
    SUBSTRING ( expression , start , length ) 
    用法不同
      

  7.   

    老弟,何必要在数据库表的字段值中搞什么copy呢,干嘛不取到客户端来copy
      

  8.   

    而且写法也不对,先不管有没有copy这个函数,单引号的个数肯定错啦。
      

  9.   

    如果非要写的话应该是这样的
    QueryGZ.SQL.Add(' Where A.类别='+QueryHZ.fieldbyname('类别').AsString); 
    其中QueryHZ.fieldbyname('类别').AsString的值为mid([人员类别],1,3)=''605'' 
      

  10.   

    取到客户端来copy,就不好定义多个条件语句了!
      

  11.   

    谢谢你!prometheusphinx(白日梦) :我先取到客户端来copy
    暂时解决问题,以后再想办法。
    另:我可能是老哥呀!