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