Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
SQL Unicode-datatyper tillhandahålls för att beskriva data som finns i Unicode internt i DBMS. En C Unicode-datatyp tillhandahålls så att ett program kan binda data till en Unicode-buffert. Driver Manager kan konvertera data från en Unicode C-typ (SQL_C_WCHAR) för att få den att fungera med en ANSI-drivrutin.
En ODBC 3.0 eller 2. x programmet binder alltid till ANSI-datatyperna. För optimal prestanda bör ett ODBC 3.5-program (eller högre) binda till ANSI-data C-typen om SQL-kolumntypen är ANSI och bör binda till Unicode C-datatypen om SQL-kolumntypen är Unicode.
Sql Unicode-typindikatorerna är SQL_WCHAR, SQL_WVARCHAR och SQL_WLONGVARCHAR. SQL_WCHAR data har en fast stränglängd, medan SQL_WVARCHAR har en variabel längd med ett deklarerat maximum och SQL_WLONGVARCHAR har en variabel längd med ett maxvärde som är beroende av datakällan.
C Unicode-typindikatorn är SQL_C_WCHAR. Detta är standardvärdet för var och en av SQL Unicode-typindikatorerna. Alla SQL-typer kan konverteras till SQL_C_WCHAR och SQL_C_WCHAR kan konverteras till alla SQL-typer. Ett program kan hämta data på något av tre sätt:
Hämta data som SQL_C_CHAR.
Hämta data som SQL_C_WCHAR.
Deklarera data som SQL_C_TCHAR. Det här är ett makro som infogar SQL_C_WCHAR om programmet kompileras som ett Unicode-program eller infogar SQL_C_CHAR om det kompileras som ett ANSI-program.
SQL_C_TCHAR deklareras i en funktion enligt följande:
SQLBindParameter(StatementHandle, 1, SQL_PARAM_INPUT, SQL_C_TCHAR, SQL_WCHAR, NameLen, 0, Name, 0, &Name)
När programmet kompileras som ett Unicode-program ändras argumentet ValueType från SQL_C_TCHAR till SQL_C_WCHAR. När programmet kompileras som ett ANSI-program ändras ValueType-argumentet till SQL_C_CHAR.
Unicode-drivrutiner måste fortfarande ha stöd för ANSI-datatyper, inklusive SQL_CHAR. Om ett program som använder en Unicode-drivrutin är bunden till SQL_CHAR, kommer SQL_CHAR-datan inte att mappas till SQL_WCHAR. Unicode-drivrutinen måste acceptera SQL_CHAR data.
Driver Manager lagrar drivrutins- och DSN-namn i Unicode och mappar dem till ANSI efter behov. Om ett Unicode-tecken inte kan mappas till ett ANSI-tecken (vilket kan inträffa om tecken från en kodsida som inte är datorns interna kodsida används i drivrutins- och DSN-namn), representeras de tecken som inte kunde konverteras av ett standardtecken som tillhandahålls av systemet.