s:=' (Asst_Item_Type1 IS NOT NULL  or  Asst_Item_Type2 IS NOT NULL) and  (  Map_Set_Code = ' +  QuotedStr(udm_cnn.SetCode)+' )';总是提示参数类型不正确,或不在可接受的范围之内,与其他参数冲突.为什么?实在不解.

解决方案 »

  1.   

    如果你的Map_Set_Code 是varchar类型的话应该是少了两个'
      

  2.   

    在查询分析器是可以的,问题是出在IS NOT NULL.我只写(ASST_ITEM_TYPE1 IS NOT NULL)也是出这个提示
      

  3.   

    SQL SERVER支不支持 <> Null的?
      

  4.   

    支持,只是把NULL认为是一个字符串.
      

  5.   

    现在问题解决了,DELPHI支持<>NULL,但是在SQL<>NULL是什么也没有的.DELPHI里当记录不为<NULL>时是可以显示的.
      

  6.   

    但是又出现另一个问题,s:='((Asst_Item_Type1 <> null) or ( Asst_Item_Type2 <> null)) and (Map_Set_Code='+QuotedStr(udm_cnn.SetCode)+' )';就当加一个AND 条件后,也是提示那个错误,郁闷!!!!!!!!!!!!!!!!!
    高手给分析分析
      

  7.   

    ((Asst_Item_Type1<>null)or(asst_item_type2<>null)) and (map_set_code='00001')
      

  8.   

    跟踪一下不就全知道了吗!
    (Map_Set_Code='+QuotedStr(udm_cnn.SetCode)后面那个函数返回值和你的字段类型匹配吗?
    我估计你是少单引号了!
    改成:(Map_Set_Code='''+QuotedStr(udm_cnn.SetCode)+''' )';试试怎么样
      

  9.   

    :(Map_Set_Code='''+QuotedStr(udm_cnn.SetCode)+''' )';改成这样还是不行.郁闷呀
      

  10.   

    s:=' (Asst_Item_Type1 IS NOT NULL ) or ( Asst_Item_Type2 IS NOT NULL) and  (  Map_Set_Code = ' +  QuotedStr(udm_cnn.SetCode)+' )';
      

  11.   

    把语句直接写在ADOQuery.SQL里面去执行试一下!
      

  12.   

    s:=' (Asst_Item_Type1 IS NOT NULL ) or ( Asst_Item_Type2 IS NOT NULL) and  (  Map_Set_Code = ' +  QuotedStr(udm_cnn.SetCode)+' )';
    ----------------------------
    这个更不行,往楼上看,这个问题是早就提出的,只有<>NULL在DELPHI里能实现.把语句直接写在ADOQuery.SQL里面去执行试一下!------------我没在QUERY里试,在SQL里试了,可以.我试一下.