with AdoQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('INSERT INTO feedinfoDM(commonName,Breed,FatDM,AshDM,CPDM,LigninNDF,StarchNSC,NDFDM,eNDFNDF,NDFIPCP,ADFIPCP,DIPCP,solCPCP,NPNsolCP,TDNDM,NEmMcalkg,MEMcalkg,NEgMcalkg');
      SQL.Add(',CaDM,NaDM,PDM,KDM,MgDM,SDM,ClDM,Comgkg,Femgkg,Imgkg,Semgkg,Mnmgkg,Znmgkg,Cumgkg,METUIP,LYSUIP,ARGUIP,THRUIP,LEUUIP,ILEUIP,VALUIP,HISUIP,PHEUIP,TRPUIP,A1000IUkg,D1000IUkg,E1000IUkg,CAhr,CB1hr,CB2hr,PB1hr,PB2hr,PB3hr,FeedNo,DMAF)');
      SQL.Add('values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q,:r,:s,:t,:u,:v,:w,:x,:y,:z,:aa,:ab,:ac,:ad,:ae,:af,:ag,:ah,:ai,:aj,:ak,:al,:am,:an,:ao,:ap,:aq,:ar,:as,:at,:au,:av,:aw,:ax,:ay,:az,:ba)');
      Parameters.Items[0].value:=Edit50.Text;
      Parameters.Items[1].value:=ComboBox1.Text;
      if edit1.text='' then
      Parameters.Items[2].value:=0
      else
      Parameters.Items[2].value:=strtofloat(Edit1.Text);我已经确定错误是跟表的字段的类型有关,但是我不明白为什么出现这种错误。我应该如何改正。
字段2为数值型。那么  Parameters.Items[2].value:=strtofloat(Edit1.Text);
哪里错了。应该怎么改。 

解决方案 »

  1.   

    告诉你类型不匹配了,自己检查一下吧,特别是字符型字段,赋值时,一定要加引号,可以用QuotedStr()
      

  2.   

    将生成的SQL语句拿到查询分析器里运行一下,就知道哪有问题了还有,建议你先写好SQL语句字符串,再给ADOQUERY赋值,这样看起来也方便
      

  3.   

    是执行execsql。这句话时出的错误。如果我把表的字段改成文本类型就不会出错。这是为什么。
      

  4.   

    你检查一下Edit1.Text的值是什么,表字段类型是什么?
      

  5.   

    edit1是字符,表字段类型是文本。如果我改成Parameters.ParamByName('c').AsFloat:=strtofloatDef(Edit1.Text,0);//、
    这种格式会不会好些啊