共用方式為


XML Updategram 的指導方針和限制 (SQLXML 4.0)

使用 XML Updategram 時,請記住下列事項:

  • 如果您使用 updategram 進行插入作業,且在區塊前後>只有一對<,則可以省略 before>< 區塊。<> 相反地,如果是刪除作業, <可以省略後> 區塊。

  • 如果您使用 updategram 搭配同步>標記中的<多個<前後><>區塊,<>則必須在區塊之前和區塊之後指定成<對之前><之後>形成。><

  • Updategram 中的更新會套用至 XML 架構所提供的 XML 檢視。 因此,若要讓預設對應成功,您必須在 updategram 中指定架構檔名,或者,如果未提供檔名,元素和屬性名稱必須符合資料庫中的數據表和數據行名稱。

  • SQLXML 4.0 要求 updategram 中的所有數據行值都必須在提供的架構中明確對應,才能撰寫其子元素的 XML 檢視。 此行為與舊版 SQLXML 不同,如果批注中隱含為外鍵的 sql:relationship 一部分,則允許架構中未對應之數據行的值。 (請注意,這項變更不會影響將主鍵值傳播至子元素,如果未明確指定子元素的值,SQLXML 4.0 仍會發生此變更。

  • 如果您使用 updategram 來修改二進位資料行中的數據(例如 SQL Server 數據類型),您必須提供對應架構,其中必須指定 SQL Server image 數據類型( sql:datatype="image"例如 dt:type="binhex"dt:type="binbase64, 或 ) 的對應架構。 二進位數據行的數據必須在 updategram 中指定; sql:url-encode updategram 會忽略對應架構中指定的批注。

  • 當您撰寫 XSD 架構時,如果您為 sql:relationsql:field 註釋指定的值包含特殊字元,例如空格符(例如,在「訂單詳細數據」數據表名稱中),這個值必須以括弧括住(例如,「訂單詳細數據」)。」。

  • 使用 Updategram 時,不支持鏈結關聯性。 例如,如果數據表 A 和 C 是透過使用資料表 B 的鏈結關聯性相關,則嘗試執行 updategram 時會發生下列錯誤:

    There is an inconsistency in the schema provided.  
    

    即使架構和 Updategram 都正確且格式有效,如果鏈結關聯性存在,也會發生此錯誤。

  • Updategram 不允許在更新期間將類型數據傳遞 image 為參數。

  • 二進位大型物件 (BLOB) 類型,例如 text/ntext 和 影像不應該在 使用 updategram 時,在 中的 區塊>中使用<,因為這會包含它們以用於並行控制。 這可能會導致 SQL Server 發生問題,因為 BLOB 類型的比較有限制。 例如,WHERE 子句中會使用 LIKE 關鍵詞來比較數據類型的數據 text 行;不過,在數據大小大於 8K 的 BLOB 類型案例中,比較將會失敗。

  • 數據中的 ntext 特殊字元可能會導致 SQLXML 4.0 發生問題,因為 BLOB 類型的比較限制。 例如,在用於類型數據行ntext並行檢查時,在 之前區塊中使用 “[Serializable]”<> 將會失敗,並出現下列 SQLOLEDB 錯誤描述:

    Empty update, no updatable rows found   Transaction aborted  
    

另請參閱

Updategram 安全性考慮 (SQLXML 4.0)