Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os tipos de dados SQL Unicode são fornecidos para descrever dados que residem nativamente no SGBD em Unicode. É fornecido um tipo de dado Unicode em C para permitir que uma aplicação associe dados a um buffer Unicode. O Gestor de Drivers pode converter dados de um tipo Unicode C (SQL_C_WCHAR) para os fazer funcionar com um driver ANSI.
Uma aplicação ODBC 3.0 ou 2.x irá sempre associar-se aos tipos de dados ANSI. Para um desempenho ótimo, uma aplicação ODBC 3.5 (ou superior) deve ligar-se ao tipo de dados ANSI C se o tipo de coluna SQL for ANSI, e deve ligar-se ao tipo de dados Unicode C se o tipo de coluna SQL for Unicode.
Os indicadores de tipo Unicode SQL são SQL_WCHAR, SQL_WVARCHAR e SQL_WLONGVARCHAR. Os dados SQL_WCHAR têm um comprimento de cadeia fixo, enquanto SQL_WVARCHAR tem um comprimento variável com um máximo declarado e SQL_WLONGVARCHAR tem um comprimento variável com um máximo que depende da fonte de dados.
O indicador de tipo Unicode C é SQL_C_WCHAR. Este é o padrão para cada um dos indicadores de tipo SQL Unicode. Todos os tipos SQL podem ser convertidos para SQL_C_WCHAR, e SQL_C_WCHAR podem ser convertidos para todos os tipos SQL. Uma aplicação pode recuperar dados de uma de três formas:
Recupera os dados como SQL_C_CHAR.
Recupera os dados como SQL_C_WCHAR.
Declare os dados como SQL_C_TCHAR. Esta é uma macro que insere SQL_C_WCHAR se a aplicação for compilada como uma aplicação Unicode ou insere SQL_C_CHAR se for compilada como uma aplicação ANSI.
SQL_C_TCHAR é declarado numa função da seguinte forma:
SQLBindParameter(StatementHandle, 1, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_WCHAR, NameLen, 0, Name, 0, &Name)
Quando a aplicação é compilada como uma aplicação Unicode, o argumento ValueType seria alterado de SQL_C_TCHAR para SQL_C_WCHAR. Quando a aplicação é compilada como uma aplicação ANSI, o argumento ValueType é alterado para SQL_C_CHAR.
Os drivers Unicode devem continuar a suportar tipos de dados ANSI, incluindo SQL_CHAR. Se uma aplicação a funcionar com um driver Unicode se ligar a SQL_CHAR, o Gestor de Drivers não irá mapear os dados de SQL_CHAR para SQL_WCHAR. O driver Unicode deve aceitar os dados SQL_CHAR.
O Gestor de Drivers armazena os nomes dos drivers e DSN no Unicode e mapeia-os para ANSI conforme necessário. Se um carácter Unicode não puder ser mapeado para um carácter ANSI (como pode acontecer se caracteres de uma página de códigos que não seja a página de código nativa do computador forem usados nos nomes dos drivers e DSN), os caracteres que não puderam ser convertidos são representados por um carácter padrão fornecido pelo sistema.