begin
       close;
       sql.Clear;
       sql.Add('insert into CW_FP_Mai    (SFS_ID,FP_NUMBER,FP_KPRQ,FP_FKRXM,FP_XSE,FP_KPR,FPDM_DM,FP_DH,FP_YHBM,FP_SKR,FP_GRDZ) values ('''+
                Label38.Caption+''','''+rzedit1.Text+''','''+label5.Caption+''','''+rzedit4.Text+''','''+label33.Caption+''','''+
                Label43.Caption+''','''+combobox1.Text+''','''+rzedit3.Text+''','''+rzedit2.Text+''','''+
                label44.Caption+''','''+rzedit3.Text+''')');
       execsql;
     end;
代码如上,DELPHI+ACCESS数据库
其中 FP_KPRQ,FP_FKRXM,FP_XSE,FP_KPR,FPDM_DM这四个四段是数字类型的。   报错提示标准表达式中数据类型不匹配

解决方案 »

  1.   

    将数字类型的引号去掉,改用strtoint()
      

  2.   


         begin
           close;
           sql.Clear;
           sql.Add('insert into CW_FP_Main (SFS_ID,FP_NUMBER,FP_KPRQ,FP_FKRXM,FP_XSE,FP_KPR,FPDM_DM,FP_DH,FP_YHBM,FP_SKR,FP_GRDZ) values ('''+
                    Label38.Caption+''','''+rzedit1.Text+''','''+label5.Caption+''','''+
                    rzedit4.Text+''','+label33.Caption+','+Label43.Caption+','+combobox1.Text+','''+
                    rzedit3.Text+''','''+rzedit2.Text+''','+label44.Caption+','''+rzedit3.Text+''')');
           execsql;
         end;
    这样为什么还是提示“标准表达式中数据类型不匹配”呢?
      

  3.   


           sql.Clear;
           sql.Add('insert into CW_FP_Main (SFS_ID,FP_NUMBER,FP_KPRQ,FP_FKRXM,FP_XSE,FP_KPR,FPDM_DM,FP_DH,FP_YHBM,FP_SKR,FP_GRDZ) values ('''+
                    Label38.Caption+''','''+rzedit1.Text+''','+label5.Caption+','+
                    rzedit4.Text+','+label33.Caption+','+Label43.Caption+','+combobox1.Text+','''+
                    rzedit3.Text+''','''+rzedit2.Text+''','+label44.Caption+','''+rzedit3.Text+''')');
           execsql;
      

  4.   

    FP_SKR是什么类型?? 如果是字符或日期 就在 label44两边多加 ''
      

  5.   


           close;
           sql.text := 'insert into CW_FP_Main (SFS_ID,FP_NUMBER,FP_KPRQ,FP_FKRXM,FP_XSE,FP_KPR,FPDM_DM,FP_DH,FP_YHBM,FP_SKR,FP_GRDZ)'+
                       ' values (:SFS_ID,:FP_NUMBER,:FP_KPRQ,:FP_FKRXM,:FP_XSE,:FP_KPR,:FPDM_DM,:FP_DH,:FP_YHBM,:FP_SKR,:FP_GRDZ)';
           Parameters.parambyname('SFS_ID').value := Label38.Caption;
           ....
           Parameters.parambyname('FP_GRDZ').value := rzedit3.Text;
           execsql;
    我习惯这样写