Compartilhar via


Gerenciando conversão de dados entre páginas de código cliente/servidor

Este tópico descreve como preservar a integridade de dados de caracteres quando o banco de dados não armazena os dados de caracteres usando tipos de dados Unicode e quando os aplicativos do lado do cliente que interagem com os dados também não reconhecem Unicode. Nessa situação, a página de código de seu armazenamento de dados e a página de códigos do aplicativo do lado do cliente devem ser iguais. Se essas páginas de código forem diferentes, a conversão que ocorre entre o cliente e o servidor pode provocar a perda de alguns caracteres.

Não há suporte para desabilitar o recurso AutoTranslate do driver SQL Server ODBC para inserir dados definidos por uma página de código diferente da página do servidor. Além disso, mesmo que AutoTranslate fosse desabilitado, isso não impediria a conversão da página de código para eventos de linguagem SQL. Em conseqüência, se as páginas de código do cliente e do banco de dados não corresponderem, a conversão de página de código geralmente será aplicada a qualquer cadeia de caracteres Unicode que seja enviada para o servidor ou por ele.

Se puder, você deve evitar essa situação. A melhor opção para um servidor específico de página de código é comunicar-se apenas com clientes que usem a mesma página de código. A segunda melhor opção é usar outra página de código que tenha quase o mesmo conjunto de caracteres. Por exemplo, a página de código 1252 (Latim1) e a página de código 850 (Latim1 multilíngüe) podem armazenar quase o mesmo conjunto de caracteres e, assim, a maioria dos caracteres nessas duas páginas de código pode ser convertida de uma página para outra sem perda de dados.

Se você precisar comunicar-se com clientes que usem diferentes páginas de código, a solução que tem suporte é armazenar seus dados em colunas Unicode. Se alguma dessas opções não for viável, a outra alternativa é armazenar os dados em colunas binárias usando os tipos de dados binary, varbinary ou varbinary(max). Porém, os dados binários só podem ser ordenados e comparados em ordem binária. Isso os torna menos flexíveis que os dados de caracteres.