TClientDataset跟TADOQuery 导入xml格式区别

TClientDataset  XML标准格式:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DATAPACKET Version="2.0">
	<METADATA>
		<FIELDS>
			<FIELD attrname="ID" fieldtype="i4"/>
			<FIELD attrname="Name" fieldtype="string" WIDTH="12"/>
			<FIELD attrname="Age" fieldtype="ui2"/>
			<FIELD attrname="money" fieldtype="r8"/>
			<FIELD attrname="Sex" fieldtype="boolean"/>
		</FIELDS>
		
	</METADATA>
	<ROWDATA>
		<ROW RowState="4" ID="1" Name="张三" Age="33" money="23.89" Sex="TRUE"/>
		<ROW RowState="4" ID="2" Name="李四" Age="44" money="185.895" Sex="FALSE"/>
		<ROW RowState="4" ID="3" Name="王五" Age="55" money="158.448" Sex="TRUE"/>
		<ROW RowState="4" ID="4" Name="刘七" Age="505" money="48.987" Sex="TRUE"/>
		<ROW RowState="4" ID="8" Age="585" money="985.5885" Sex="TRUE"/>
		<ROW RowState="4" Name="test" Age="575" money="1.898" Sex="TRUE"/>
		<ROW RowState="4" ID="19" Name="" Age="589" money="158.358" Sex="TRUE"/>
	</ROWDATA>
</DATAPACKET>

TADOQuery XML标准格式:

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
	xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
	xmlns:rs='urn:schemas-microsoft-com:rowset'
	xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
	<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
		<s:AttributeType name='ltype' rs:number='1' rs:nullable='true' rs:writeunknown='true' rs:basecatalog='' rs:basetable=''
			 rs:basecolumn='ltype'>
			<s:datatype dt:type='string' dt:maxLength='51'/>
		</s:AttributeType>
		<s:AttributeType name='dname' rs:number='2' rs:nullable='true' rs:writeunknown='true' rs:basecatalog='' rs:basetable=''
			 rs:basecolumn='dname'>
			<s:datatype dt:type='string' dt:maxLength='51'/>
		</s:AttributeType>
		<s:AttributeType name='dvalue' rs:number='3' rs:nullable='true' rs:writeunknown='true' rs:basecatalog='' rs:basetable=''
			 rs:basecolumn='dvalue'>
			<s:datatype dt:type='string' dt:maxLength='51'/>
		</s:AttributeType>
		<s:AttributeType name='dmemo' rs:number='4' rs:writeunknown='true' rs:basecatalog='' rs:basetable='' rs:basecolumn='dmemo'>
			<s:datatype dt:type='string' dt:maxLength='41'/>
		</s:AttributeType>
		<s:AttributeType name='isort' rs:number='5' rs:writeunknown='true' rs:basecatalog='' rs:basetable='' rs:basecolumn='isort'>
			<s:datatype dt:type='i4' dt:maxLength='12'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<z:row ltype='bbzt' dname='报备完成' dvalue='报备完成' dmemo='bbzt6'/>
	<z:row ltype='bbzt' dname='初审通过' dvalue='初审通过' dmemo='bbzt3'/>
	<z:row ltype='bbzt' dname='申请审核' dvalue='申请审核' dmemo='bbzt2'/>
	<z:row ltype='bbzt' dname='审核通过' dvalue='审核通过' dmemo='bbzt4'/>
	<z:row ltype='bbzt' dname='审核未通过' dvalue='审核未通过' dmemo='bbzt5'/>
	<z:row ltype='bbzt' dname='暂存' dvalue='暂存' dmemo='bbzt1'/>
	<z:row ltype='bbzt' dname='作废' dvalue='作废' dmemo='bbzt7'/>
	<z:row ltype='city' dname='法国' dvalue='法国'/>
	<z:row ltype='city' dname='美国' dvalue='美国'/>
	<z:row ltype='city' dname='其他国家' dvalue='其他国家'/>
</rs:data>
</xml>

Adoquery的原数据截图:

 

说明:cds导入的xml格式中,如果对应的是string字段,那么WIDTH属性是必须要有的,否则导入不了。WIDTH属性可以通过

getColumnDisplaySize() 方法获取。

 

posted @ 2022-10-04 00:15  IT情深  阅读(24)  评论(0编辑  收藏  举报