Marry是表中的某一项是char类型,我想根据这项的值作不同的操作:
if(Query_DeleteID.FieldValues['Marry']='''已婚有子女''') 
or (Query_DeleteID.FieldValues['Marry']='''已婚无子女''') then
begin

end;可是即使表中Marry是“已婚有子女”,IF语句也不成立,为什么啊?是不是中文不能直接这样比较啊?

解决方案 »

  1.   

    字符串是单引号括起来的。
    if(Query_DeleteID.FieldByName('Marry').AsString='已婚有子女')
    or (Query_DeleteID.FieldByName('Marry').AsString='已婚无子女') then
    begin

    end;
      

  2.   

    if(Query_DeleteID.FieldByName('Marry').asString='已婚有子女')  
    or (Query_DeleteID.FieldByName('Marry').asString='已婚无子女') then 
    begin 
    。 
    end; 
      

  3.   

    if(Trim(Query_DeleteID.FieldByName('Marry').asString)='已婚有子女')   
    or (Trim(Query_DeleteID.FieldByName('Marry').asString)='已婚无子女') then
      

  4.   

    两个解决办法
    把char类型换成varchar
    or
    用trim(Query_DeleteID.FieldByName('Marry').asString),把空格清除
      

  5.   

    建议楼主定义成varchar类型的 一般我定义char(1) 也就是一个值  Y 或 N if(Trim(Query_DeleteID.FieldByName('Marry').asString)='已婚有子女')    
    or (Trim(Query_DeleteID.FieldByName('Marry').asString)='已婚无子女') then
    begin
    ...........
    end;