我要将dbf数据库的值导入到sqlserver2000中,但是dbf数据库有时数据会出现连续几行的空白,我在导入到sql中会赢字段数值为inaccessible value 而出现‘所应用的值的类型不正确’的报错。我想加一个判断,如果dbf数值不可识别,那将数据全部插入0,正常则插入该dbf字段的数据.
                   if adoqry_s.Fields[0].Value = inaccessible value then
                        parameters[0].Value:='0'
                   else parameters[0].Value:=adoqry_S.Fields[0].Value;
但是出现语法错误,请问该怎么写这样的语句?很急,请明白的大侠多多指点。

解决方案 »

  1.   

    inaccessible value是插进表里的值吗
      

  2.   

    试试这个
    if adoqry_s.Fields[0].IsNull then
      parameters[0].Value:='0'
    else 
      parameters[0].Value:=adoqry_S.Fields[0].Value; 
      

  3.   

    to beifangke:  
        inaccessible value不是插进表里的值,字段一个是日期类型其余是字符串类型,但是采集到的数据由于一些不可控原因数据是空白,设置断点调试时,显示是“inaccessible value”,用parameters[0].Value:=adoqry_S.Fields[0].Value语句赋值出错,意思是数值类型不正确。tosmallhand:明天试一下,但是我觉得可能不行。因为我试着把某几行数据删除,断点调试,显示是”null“,且直接能用parameters[0].Value:=adoqry_S.Fields[0].Value赋值,而那几行数据显示是“inaccessible value”,恐怕两种情况是不一样的。
      

  4.   


    //将parameters[0].Value:=adoqry_S.Fields[0].Value转成以下的写法:
       parameters[0].Value:=adoqry_S.Fields[0].asString;
    //强制性的对数据类型进行一个显示转换.相信这样就能解决你的问题.
      

  5.   


     parameters[0].Value:=adoqry_S.Fields[0].asString;ado连接一般别用value,有null值转换不好使,BDE好像没这个问题
      

  6.   

                      if adoqry_s.Fields[0].Value = inaccessible value then  //原来是怎么写的?
                            parameters[0].Value:='0'
                      else parameters[0].Value:=adoqry_S.Fields[0].Value; 
      

  7.   

    问题解决了,导入时进行了有效判断,谢谢各位的踊跃发言。
    to eqapple :我表中一个字段是DATE型,用你那个方法不行,不过vchar型的可以。