//客户端ClientDataSet保存的XML文件。
//------------------------------
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="MTNO" fieldtype="string" WIDTH="16"/>
<FIELD attrname="HPTLCODE" fieldtype="string" WIDTH="10"/>
<FIELD attrname="RECIPECODE" fieldtype="string" WIDTH="16"/>
<FIELD attrname="RECIPELISTCODE" fieldtype="string" WIDTH="16"/>
<FIELD attrname="CHARGETYPECODE" fieldtype="string" SUBTYPE="FixedChar" WIDTH="2"/>
<FIELD attrname="PARAVALUE" fieldtype="string" WIDTH="60"/>
<FIELD attrname="CHARGEITEMCODE" fieldtype="string" WIDTH="50"/>
<FIELD attrname="CHARGENAME" fieldtype="string" WIDTH="60"/>
<FIELD attrname="FEEAMT" fieldtype="fixed" WIDTH="38"/>
<FIELD attrname="EARLYSELFPAYSCALE" fieldtype="string" WIDTH="40"/>
<FIELD attrname="SELFPAYSCALE" fieldtype="string" WIDTH="40"/>
</FIELDS>
<PARAMS/>
</METADATA>
<ROWDATA>
<ROW MTNO="2003031400000000" HPTLCODE="2203000001" RECIPECODE="1" RECIPELISTCODE="1" CHARGETYPECODE="01" PARAVALUE="甲类药" CHARGENAME="甲类药" FEEAMT="500" EARLYSELFPAYSCALE="0" SELFPAYSCALE="1"/>
</ROWDATA>
</DATAPACKET>
//---------------------------------------------------
数据库中的FeeAmt的Value = 500.02
从上面文件分析,字段FeeAmt数据类型fixed转换为TDataType类型TBCDField类型。
这说明从ADO->TClientDataSet转换中Delphi就给转换错误,转换方法用TDataSetProvider.
问题依然存在,待高手解决。
另外我们在SQL中用to_char(FeeAmt) as FeeAmt可解决显示小数问题,但无法修改该字段。