共用方式為


數據部分

數據區段會定義數據列集的數據,以及任何擱置的更新、插入或刪除。 數據區段可以包含零個或多個數據列。 它只能包含由架構定義的一個列集中的資料。 此外,如先前所述,可以省略不含任何數據的數據行。 如果在數據區段中使用屬性或子元素,而且該建構尚未在架構區段中定義,則會以無訊息方式忽略。

字串

文字數據中的保留 XML 字元必須替換為適當的字元實體。 例如,在公司名稱「Joe's Garage」中,需將撇號替換為實體字符。 實際的表格列會如下所示:

<z:row CompanyName="Joe's Garage"/>  

下列字元會保留於 XML 中,且必須由字元實體取代:{',“,&、<、>}。

二元的

二進位數據為 bin.hex 編碼(也就是,一個字節對應至兩個字元,每一個字節一個字元)。

日期時間

XML-Data 數據類型不直接支援變體VT_DATE格式。 具有數據和時間元件之日期的正確格式為 yyyy-mm-ddThh:mm:ss。

如需 XML 所指定日期格式的詳細資訊,請參閱 W3C XML-Data 規格

當 XML-Data 規格定義兩個等價的資料型別時(例如 i4 == int),ADO 會寫出友善名稱,但會讀取兩者。

管理擱置的變更

Recordset 可以在立即或批次更新模式中開啟。 當它們以客户端游標在批次更新模式中開啟時,對 Recordset 所做的所有變更都會處於暫存狀態,直到呼叫 UpdateBatch 方法為止。 儲存紀錄集時,待處理的變更也會被保留。 在 XML 中,它們會以使用 urn:schemas-microsoft-com:rowset 中定義的“update” 元素來表示。 此外,如果可以更新數據列集,則必須在數據列的定義中將可更新的屬性設定為 true。 例如,若要定義[貨運公司] 數據表包含擱置的變更,數據列定義看起來會像下面這樣。

<s:ElementType name="row" content="eltOnly" updatable="true">  
  <s:attribute type="ShipperID"/>  
  <s:attribute type="CompanyName"/>  
  <s:attribute type="Phone"/>  
  <s:extends type="rs:rowbase"/>  
</s:ElementType>  

這會告訴持續性提供者呈現數據,讓 ADO 可以建構可更新的 Recordset 物件。

下列範例數據顯示插入、變更和刪除在保存的檔案中的外觀。

<rs:data>  
  <z:row ShipperID="2" CompanyName="United Package"   
    Phone="(503) 555-3199"/>  
<rs:update>  
  <rs:original>  
    <z:row ShipperID="3" CompanyName="Federal Shipping"   
      Phone="(503) 555-9931"/>  
  </rs:original>  
  <z:row Phone="(503) 552-7134"/>  
</rs:update>  
<rs:insert>  
  <z:row ShipperID="12" CompanyName="Lightning Shipping"   
    Phone="(505) 111-2222"/>  
  <z:row ShipperID="13" CompanyName="Thunder Overnight"   
    Phone="(505) 111-2222"/>  
  <z:row ShipperID="14" CompanyName="Blue Angel Air Delivery"   
    Phone="(505) 111-2222"/>  
</rs:insert>  
<rs:delete>  
  <z:row ShipperID="1" CompanyName="Speedy Express" Phone="(503) 555-9831"/>  
</rs:delete>  
</rs:data>  

更新始終包含整個原始欄數據,接著是已變更的欄數據。 已變更的數據列可能包含所有數據行,或只包含實際變更的數據行。 在上一個範例中,貨運公司 2 的數據列不會變更,而且只有 Phone 數據行已變更貨運 3 的值,因此是唯一包含在已變更數據列中的數據行。 貨運公司 12、13 和 14 的插入數據列會分批在一個 rs:insert 標記下。 請注意,已刪除的數據列也可以批處理在一起,但上述範例中不會顯示此數據列。

另請參閱

以 XML 格式儲存記錄