<?xml version="1.0" standalone="yes"?> 
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="barcode1" fieldtype="string" WIDTH="20"/>
</FIELDS>
<PARAMS/>
</METADATA> <ROWDATA></ROWDATA>
</DATAPACKET>使用 ClientDataSet1 另存字段格式为XML,为什么<PARAMS/>这个没有起标记,也就是前面应该有一个<PARAMS>,
但是这里只有结束标记。请问这个是BUG,还是可以这样写?

解决方案 »

  1.   

    首先,楼主的概念是错的,param 标签是单独出现的,无论 TClientDataSet 的记录是多少,“ <param />”总是单独出现的,在“param” 与“/”之间的信息,与记录的变化有关。比如,你往里添加一条记录(输入字符“1”),存为 XML 后,内容大致如下:
    <?xml version="1.0" standalone="yes"?>  <DATAPACKET Version="2.0"><METADATA><FIELDS><FIELD attrname="barcode1" fieldtype="string" WIDTH="20"/></FIELDS><PARAMS CHANGE_LOG="1 0 4"/></METADATA><ROWDATA><ROW RowState="4" barcode1="1"/></ROWDATA></DATAPACKET>
      

  2.   

    请问楼上 CHANGE_LOG="1 0 4" 这个有什么作用,我到出来的数据就包含了很多这些数字,如果删除了对数据是否有影响?
      

  3.   

    “PARAMS”与“/”之间的信息,可以通过"ChangeCount"方法获知修改的次数,并可通过“UndoLastChange”方法,使数据返回修改前的状态,所以,删除那些数据,就影响到这两方法的作用效果。
      

  4.   

    再补充一句:当客户数据集使用MergeChangeLog方法时,就是将该部分的信息清除了。