回 帖 发 新 帖 刷新版面

主题:[原创]求助 急急急!!!!!

preoject preoject1.exe raised exception class evariantypecast error
with message 'could not convert variant of type(null) into type(string)'.
process stopped.  
我调试时总是出现这样的错误  为啥啊  咋改阿

回复列表 (共7个回复)

沙发

你是不是写的插入语句啊,丢了一个字段

板凳

把错误代码段一贴就知道了

string和null无法转化的关系

3 楼


代码没错啊  是不是与数据库定义的类型有关啊

4 楼

把表结构 和insert语句贴出来看看

5 楼


数据库:月份    总业绩    月平均业绩    月人平均业绩    计算系数    最低提成比例    人均月任务量    站月工资
adoquery1.close;
    adoquery5.close;
    adoquery6.close;
    adoquery7.close;
    ADOQuery1.SQL.Clear;
    ADOQuery5.SQL.Clear;
    ADOQuery6.SQL.Clear;
    ADOQuery7.SQL.Clear;
    adoquery1.SQL.Add('select 业绩量 from 工作表 where 月份=''一月''' );
  adoquery1.SQL.Add('and where 月份=''十一月''' );
  adoquery1.SQL.Add('and where 月份=''十二月''' );
  adoquery5.SQL.Add('select 业绩量 from 工作表 where 月份=''一月''' );
  adoquery5.SQL.Add('and where 月份=''十一月''' );
  adoquery5.SQL.Add('and where 月份=''十二月''' );
  adoquery6.SQL.Add('select 业绩量 from 工作表 where 月份=''一月''' );
  adoquery6.SQL.Add('and where 月份=''十一月''' );
  adoquery6.SQL.Add('and where 月份=''十二月''' );
  adoquery7.SQL.Add('select 业绩量 from 工作表 where 月份=''一月''' );
  adoquery7.SQL.Add('and where 月份=''十一月''' );
  adoquery7.SQL.Add('and where 月份=''十二月''' );
  adoquery1.open;
  adoquery5.open;
  adoquery6.open;
  adoquery7.open;
  sum1:=sum1+ADOTable3.fieldbyname('业绩量').value;
  sum2:=sum2+ADOTable5.fieldbyname('业绩量').value;
  sum3:=sum3+ADOTable6.fieldbyname('业绩量').value;
  sum4:=sum4+ADOTable7.fieldbyname('业绩量').value;
   s1:=sum1+s1;
    s2:=s1/3;//月平均业绩
    adoquery2.close;
    ADOQuery2.SQL.Clear;
    adoquery2.SQL.Add('select 人数 from 数量 where 月份=''一月''' );
    s8:=s8+ADOTable1.fieldbyname('人数').value;
    s3:=s2/s8;
     adoquery3.close;
    ADOQuery3.SQL.Clear;
    adoquery3.SQL.Add('select 总人数 from 一通1 where 月份=''一月''' );
     adoquery3.open;
     s9:=s9+ADOTable4.fieldbyname('总人数').value;
    s4:=(sum1+sum2+sum3+sum4)/(3*s9);
    adoquery2.close;
    ADOQuery2.SQL.Clear;
    adoquery2.SQL.Add('select 提成系数 from 数量 where 月份=''一月''' );
     adoquery2.open;
     s10:=s10+ADOTable1.fieldbyname('提成系数').value;
    s5:=s4*s10;
    s6:=s2*1.05;
    s7:=s6*s5;
    str(s2:8:2,b);
    str(s3:8:2,c);
    str(s4:8:2,d);
    str(s5:8:2,e);
    str(s6:8:2,f);
    str(s7:8:2,s);
    str(sum1:8:2,a);
    Memo1.Text:='数目:'+a;
    Memo1.Text:='数目:'+b;
    Memo1.Text:='数目:'+c;
    Memo1.Text:='数目:'+d;
    Memo1.Text:='数目:'+e;
    Memo1.Text:='数目:'+f;
    Memo1.Text:='数目:'+s;
    ADOTable2.append;
    SaveDataToTable;

6 楼

自己单步跟踪调试看看就可以了

7 楼


自己单步跟踪调试咋用啊

我来回复

您尚未登录,请登录后再回复。点此登录或注册