在用SQL制表时,在labelededit.text中输入值,然后将其保存在SQL中,SQL 提示“数据不匹配”,我用strtofloat,在调试时,delphi提示”数据不匹配“。
[Error] Unit1.pas(544): Incompatible types: 'String' and 'Extended'
 源码如下:
dm.ADOQuery1.Close ;
   DM.AdoQuery1.SQL.Clear;
   dm.ADOQuery1.SQL.Add('insert into paiddetail Values('''+payid+''',1,'+trim(labelededit4.Text)+','+strtofloat(trim(labelededit36.Text))+','+strtofloat(trim(labelededit23.Text))+','+strtofloat(trim(labelededit24.Text))+')');
   dm.ADOQuery1.ExecSQL;

解决方案 »

  1.   

    先定义SQL语句,然后把条件格式化进去,我看你那一堆,头都大了,
      

  2.   

    估计是第一个字段,payid还是字符型的,可能是这个处的问题吧,另外介绍一个函数quotedstr(),就是添加''的
      

  3.   

    你可以把SqL语句输出出来,到查询分析器里执行,看看是哪里错了。
    这样不就好调试了嘛。
      

  4.   

    你这样定义一不小心就会出错的干嘛一定要这样?这样做不行吗?改改就可以了,主要是方法而已
      adoinsert.CommandText:='insert into StudentInfo values(:ID,:AccountsID,:NAME,:SEX,:native,:Department,:Class,:speciality,:TuiNowTuitio,:TuiLacktotal,:DormID,:DoNowTuitio,:DoLacktotal,:INdate,:Lacktotal,:YesNograd)';
        adoinsert.Parameters.ParamValues['ID']:=trim(suiedit1.Text);
        adoinsert.Parameters.ParamValues['AccountsID']:=trim(suiedit2.Text);
        adoinsert.Parameters.ParamValues['NAME']:=trim(suiedit3.Text);
        adoinsert.Parameters.ParamValues['SEX']:=trim(suiComboBox1.Text);
        adoinsert.Parameters.ParamValues['native']:=trim(suiedit4.Text);
        adoinsert.Parameters.ParamValues['Department']:=trim(suiedit5.Text);
        adoinsert.Parameters.ParamValues['Class']:=trim(suiedit6.Text);