Udostępnij przez


Zasady i ograniczenia Updategrams XML (SQLXML 4.0)

Podczas korzystania z XML updategrams, należy pamiętać o następujących czynności:

  • Jeśli używasz updategram dla operacji wstawiania z tylko jedną parą <before> i <after> bloki, <before> Blok może być pominięte. Natomiast przypadek wystąpienia operacji usuwania <after> Blok może być pominięte.

  • Jeśli korzystasz z wielu updategram <before> i <after> bloki w <sync> znakowanie, oba <before> bloki i <after> Bloki musi być określona do formularza <before> i <after> pary.

  • Aktualizacje zawarte w updategram stosuje się do widoku XML, który jest dostarczany przez schemat XML.Dlatego dla domyślnego odwzorowania albo powiodła się, należy określić nazwę pliku schematu w updategram lub, jeśli nie podano nazwy pliku, nazwy elementów i atrybut musi pasować do tabeli i kolumna nazw w bazie danych.

  • SQLXML 4.0 wymaga, aby wszystkie wartości kolumna w updategram musi być jawnie mapowany w schemacie (XDR lub XSD) do redagowania Widok XML dla jego elementów podrzędność.To zachowanie różni się od starszych wersji SQLXML, które dozwoloną wartość dla kolumna nie są mapowane w schemacie, jeśli został podany jako część klucz obcy w sql:relationship adnotacja. (Należy zauważyć, że ta zmiana nie wpływa na propagacji wartości klucz podstawowy z elementami podrzędnymi, nadal występuje 4.0 SQLXML, jeśli wartość nie zostanie jawnie określona dla elementu podrzędnego.

  • If you are using an updategram to modify data in a binary column (such as the SQL Serverimage data type), you must provide a mapping schema in which the SQL Server data type (for example, sql:datatype="image") and the XML data type (for example, dt:type="binhex" or dt:type="binbase64) must be specified.Dane binarne kolumn muszą być określone w updategram; sql:url-encode Adnotacja jest określona w schemacie mapowania jest ignorowany przez updategram.

  • Podczas pisania schematu XSD, jeśli wartość określona dla sql:relation lub sql:fieldadnotacja zawiera znaków specjalnych, takich jak znak spacji (na przykład w nazwie tabela "Opisy zamówień"), wartość ta musi być ujęty w nawiasy kwadratowe (na przykład, "[SzczegółyZamówień]").

  • Podczas korzystania z updategrams łańcuch relacji nie są obsługiwane.Na przykład jeśli powiązanych tabel A i C za pośrednictwem relacji łańcucha, która korzysta z tabela B, następujący błąd wystąpi podczas próby uruchomienia i uruchomić updategram:

    There is an inconsistency in the schema provided.
    

    Nawet wtedy, gdy zarówno schematu i updategram są inaczej poprawne sformułowany prawidłowo, to wystąpi błąd, gdy ma relację łańcucha.

  • Updategrams nie zezwalają na przekazywanie image Wpisz dane jako parametry podczas aktualizacji.

  • Typy duży obiekt binarny (BLOB), np. text/ntext i obrazy nie powinny być używane w <before> blokowanie podczas pracy z updategrams, ponieważ spowoduje to ich do użytku w formancie współbieżność. Może to spowodować problemy z SQL Server ze względu na ograniczenia porównania dla typów wartości BLOB. Na przykład LIKE słowo kluczowe jest używana w klauzula WHERE do porównywania między kolumnami text Typ danych; jednak porównań zakończy się niepowodzeniem przypadek wystąpienia typu BLOB, których rozmiar danych jest większa niż 8 KB.

  • Znaki specjalne w ntext dane, może spowodować problemy z SQLXML 4.0 ze względu na ograniczenia porównania dla typów wartości BLOB. Na przykład, użycia "Serializable [] „ w <before> Blok updategrams, w w współbieżność sprawdzanie kolumna ntext Typ nie powiedzie się z następującym opis błędu SQLOLEDB:

    Empty update, no updatable rows found   Transaction aborted