Close;
 SQL.Clear;
 STR2:='insert into tk_in01 (shop_id,in_id,in_sno,batch_id,prod_id,tk_bno,tk_eno,tknum,value,sale_price)'+
                '  values ('''+trim(ADOQuery4.fieldbyname('shop_id').AsString)+''','''+trim(ADOQuery4.fieldbyname('alt_id').AsString)+''','''+trim(ADOQuery4.fieldbyname('alt_sno').AsString)+''','''+trim(ADOQuery4.fieldbyname('batch_id').AsString)+''','''+trim(ADOQuery4.fieldbyname('prod_id').AsString)+''', '+
                '   '''+trim(ADOQuery4.fieldbyname('tk_bno').AsString)+''','''+trim(ADOQuery4.fieldbyname('tk_eno').AsString)+''','''+inttostr(ADOQuery4.fieldbyname('tknum').asinteger)+''','''convert(char,ADOQuery4.fieldbyname('value').asfloat,1)''','''convert(char,ADOQuery4.fieldbyname('value').asfloat,1)''')';
value 是Money类型。最后的两个字段怎么赋值

解决方案 »

  1.   

    将数值转成字符就行了,floattostr
      

  2.   

    Format('%.2f', [qrt.Fields[0].AsFloat]);
    或者直接FloatToStr
      

  3.   

    formatfloat('#,##0.00',值)
    或者把你的语句改成
    sql.text := 'insert into table (a) values(:a)';
    parameters.parambyname('a').value := 值
      

  4.   

    '''convert(char,ADOQuery4.fieldbyname('value').asfloat,1)'''
    直接写成ADOQuery4.fieldbyname('value').asString即可,无须用SQL语句来转换类型的
      

  5.   

    一:sql 直接转成字符串
    二:DataSet.fieldbyname().value