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.
Du kan kompilera om ett program som ett Unicode-program på något av två sätt:
Inkludera Unicode -#define som finns i huvudfilen Sqlucode.h i programmet.
Kompilera programmet med kompilatorns Unicode-alternativ. (Det här alternativet skiljer sig åt för olika kompilatorer.)
Om du vill konvertera ett ANSI-program till ett Unicode-program skriver du programmet för att lagra och skicka Unicode-data. Dessutom måste anrop till funktioner som stöder SQLPOINTER-argument konverteras för att använda antal byte.
När ett program har kompilerats som ett Unicode-program, om programmet anropar en ODBC API-funktion (utan suffix), identifierar Driver Manager programmet som ett Unicode-program och konverterar funktionsanropet till en Unicode-funktion (med W-suffixet) om den underliggande drivrutinen stöder Unicode. När ett ANSI-program gör ett funktionsanrop utan suffix konverterar Driver Manager det till ANSI om den underliggande drivrutinen stöder ANSI. Om både programmet och drivrutinen stöder samma teckenkodning skickar drivrutinshanteraren anropen till drivrutinen (med vissa undantag för ANSI-program).
Ett program kan anropa både Unicode-funktioner (med W-suffixet) och ANSI-funktioner (med eller utan A-suffixet). Unicode- och ANSI-funktionsanrop kan blandas. Om markörbiblioteket ska användas kan unicode- och ANSI-funktionsanrop inte blandas. Markörbiblioteket är antingen Unicode eller ANSI, inte en blandning.
Ett program kan skrivas så att det kan kompileras som antingen ett Unicode-program eller ett ANSI-program. I det här fallet kan teckendatatyper deklareras 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. Programprogram programmeraren måste vara försiktig med funktioner som tar SQLPOINTER som argument, eftersom storleken på längdargumentet ändras (för strängdatatyper) beroende på om programmet är ANSI eller Unicode.
En funktion kan anropas på något av tre sätt: som ett Unicode-funktionsanrop (med W-suffixet), som ett ANSI-funktionsanrop (med A-suffixet) eller som ODBC-funktionsanrop utan suffix. Argumenten till de tre formerna av en funktion är identiska. Endast de funktioner med SQLCHAR * argument eller SQLPOINTER-argument som pekar på strängar kräver Unicode- och ANSI-formulär. För funktioner som har argument som kan deklareras som en teckentyp, till exempel SQLBindCol eller SQLGetData (som inte har Unicode- och ANSI-formulär), kan argumentet deklareras som Unicode-typ, ANSI-typ eller, om det gäller ett C-typargument, SQL_C_TCHAR makro. Mer information finns i Unicode Data.
Ett program kan skrivas som ett Unicode-program även om det inte finns några Unicode-drivrutiner tillgängliga för det att fungera med. Driver Manager mappar Unicode-funktioner och datatyper till ANSI. Det finns vissa begränsningar för Unicode till ANSI-mappningar som kan utföras. Förekomsten av en Unicode-drivrutin för Unicode-programmet som ska fungera med ger bättre prestanda och tar bort begränsningarna i Unicode till ANSI-mappningar.