Compartilhar via


Diretrizes e limitações dos diagramas de atualização XML (SQLXML 4.0)

Lembre-se das recomendações a seguir ao usar diagramas de atualização XML:

  • Se você estiver usando um diagrama de atualização para uma operação de inserção com apenas um único par de <blocos antes> e <depois> , o <bloco anterior> poderá ser omitido. Por outro lado, no caso de uma operação de exclusão, o <bloco after> pode ser omitido.

  • Se você estiver usando um diagrama de atualização com vários blocos <antes> e <depois> na <marca de sincronização> , os <blocos antes> e <depois> deverão ser especificados para formar <pares antes> e <depois> .

  • As atualizações em um diagrama de atualização são aplicadas à exibição XML fornecida pelo esquema XML. Portanto, para o mapeamento padrão obter êxito em qualquer uma das situações, você precisará especificar o nome do arquivo de esquema no diagrama de atualização ou, se o nome do arquivo não for fornecido, os nomes de elemento e atributo precisarão corresponder aos nomes de tabela e coluna no banco de dados.

  • O SQLXML 4.0 exige que todos os valores de coluna de um diagrama de atualização sejam mapeados explicitamente no esquema (XDR ou XSD) fornecido para compor a exibição XML de seus elementos filho. Esse comportamento é diferente daquele das versões anteriores do SQLXML, que permitiam um valor para uma coluna não mapeada no esquema se fosse sugerido como parte da Chave estrangeira em uma anotação sql:relationship. (Observe que essa alteração não influencia na propagação dos valores de chave primária para os elementos filho, que ainda ocorrerá para o SQLXML 4.0 se nenhum valor for especificado explicitamente para o elemento filho.

  • Se você estiver usando um diagrama de atualização para modificar dados em uma coluna binária (como o tipo de dados SQL Serverimage), deverá fornecer um esquema de mapeamento no qual o tipo de dados SQL Server (por exemplo, sql:datatype="image") e o tipo de dados XML (por exemplo, dt:type="binhex" ou dt:type="binbase64) devem ser especificados. Os dados da coluna binária precisam ser especificados no diagrama de atualização; a anotação sql:url-encode especificada no esquema de mapeamento é ignorada pelo diagrama de atualização.

  • Quando você está escrevendo um esquema XSD, se o valor especificado para a anotação sql:relation ou sql:field incluir um caractere especial, como um caractere de espaço (por exemplo, no nome de tabela "Order Details"), esse valor precisará ser colocado entre colchetes (por exemplo, "[Order Details]").

  • Ao usar diagramas de atualização, não são suportadas relações de cadeia. Por exemplo, se as tabelas A e C tiverem uma relação de cadeia que use a tabela B, ocorrerá o erro a seguir ao tentar executar o diagrama de atualização:

    There is an inconsistency in the schema provided.  
    

    Mesmo se o esquema e o diagrama de atualização estiverem corretos e devidamente formados, esse erro ocorrerá se houver uma relação de cadeia.

  • Os diagramas de atualização não permitem a passagem de dados de tipo image como parâmetros durante as atualizações.

  • Tipos de BLOB (objeto binário grande), como text/ntext e imagens, não devem ser usados no <bloco anterior> no ao trabalhar com diagramas de atualização, pois isso os incluirá para uso no controle de simultaneidade. Isso pode causar problemas com SQL Server devido às limitações na comparação para tipos BLOB. Por exemplo, a palavra-chave LIKE é usada na cláusula WHERE para comparar entre colunas do tipo de dados text; entretanto, as comparações falharão no caso de tipos BLOB em que o tamanho dos dados seja maior do que 8KB.

  • Caracteres especiais em dados ntext podem causar problemas com o SQLXML 4.0 devido às limitações de comparação para tipos BLOB. Por exemplo, o uso de "[Serializable]" no <bloco anterior> de um diagrama de atualização quando usado na verificação de simultaneidade de uma coluna do tipo falhará com a seguinte descrição ntext de erro SQLOLEDB:

    Empty update, no updatable rows found   Transaction aborted  
    

Consulte Também

Considerações sobre segurança para diagramas de atualização (SQLXML 4.0)