Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Microsoft Fabric
Microsoft OLE DB-drivrutinen för SQL Server (version 18.2.1) lägger till stöd för UTF-8-serverkodningen. Information om stöd för SQL Server UTF-8 finns i:
Version 18.4.0 av drivrutinen lägger till stöd för UTF-8-klientkodningen (aktiverad med kryssrutan "Använd Unicode UTF-8 för stöd för globalt språk" under Regioninställningar i Windows 10 och Windows 11).
Anmärkning
Microsoft OLE DB-drivrutinen för SQL Server använder funktionen GetACP för att fastställa kodningen av DBTYPE_STR indatabuffert.
Scenarier där GetACP returnerar en UTF-8-kodning (aktiverad med kryssrutan "Använd Unicode UTF-8 för globalt språkstöd" under Regioninställningar i Windows 10 och Windows 11) stöds från och med version 18.4. Om bufferten behöver lagra Unicode-data i tidigare versioner ska buffertdatatypen anges till DBTYPE_WSTR (UTF-16-kodad).
Datainfogning i en UTF-8-kodad CHAR- eller VARCHAR-kolumn
När du skapar en indataparameterbuffert för infogning beskrivs bufferten med hjälp av en matris med DBBINDING-strukturer. Varje DBBINDING-struktur associerar en enskild parameter med konsumentens buffert och innehåller information som datavärdets längd och typ. För en indataparameterbuffert av typen CHAR ska wType för DBBINDING-strukturen anges till DBTYPE_STR. För en indataparameterbuffert av typen WCHAR ska wType för DBBINDING-strukturen anges till DBTYPE_WSTR.
När du kör ett kommando med parametrar skapar drivrutinen information om parameterdatatyp. Om indatabufferttypen och parameterdatatypen matchar görs ingen konvertering i drivrutinen. Annars omvandlar drivrutinen bufferten för indataparametrar till parameterdatatypen. Parameterdatatypen kan anges explicit av användaren genom att anropa ICommandWithParameters::SetParameterInfo. Om informationen inte anges härleder drivrutinen informationen om parameterdatatypen genom att (a) hämta kolumnmetadata från servern när -instruktionen förbereds, eller (b) försöker utföra en standardkonvertering från datatypen för indataparametern.
Indataparameterbufferten kan konverteras till serverkolumnsortering av drivrutinen eller av servern, beroende på datatypen för indatabufferten och parameterns datatyp. Under konverteringen kan dataförlust inträffa om klientkodsidan eller kodsidan för databassortering inte kan representera alla tecken i indatabufferten. I följande tabell beskrivs konverteringsprocessen när data infogas i en UTF-8-aktiverad kolumn:
| Buffertdatatyp | Parameterdatatyp | Conversion | Försiktighetsåtgärder för användare |
|---|---|---|---|
| DBTYPE_STR | DBTYPE_STR | Serverkonvertering från klientkodsida till kodsida för databassortering. serverkonvertering från kodsidan för databassortering till kolumnsorteringskodsidan. | Kontrollera att klientkodsidan och kodsidan för databassortering kan representera alla tecken i indata. Om du till exempel vill infoga ett polskt tecken kan klientkodsidan anges till 1250 (ANSI Central European) och databassortering kan använda polska som sorteringsdesignator (till exempel Polish_100_CI_AS_SC) eller vara UTF-8 aktiverat. |
| DBTYPE_STR | DBTYPE_WSTR | Drivrutinskonvertering från klientkodsidan till UTF-16-kodning; serverkonvertering från UTF-16-kodning till kolumnsorteringskodsida. | Kontrollera att klientkodsidan kan representera alla tecken i indata. Om du till exempel vill infoga ett polskt tecken kan klientkodsidan anges till 1250 (ANSI Central European). |
| DBTYPE_WSTR | DBTYPE_STR | Drivrutinskonvertering från UTF-16-kodning till kodsidan för databassortering; serverkonvertering från kodsidan för databassortering till kolumnsorteringskodsidan. | Se till att sidan för databassorteringskod kan representera alla tecken i indata. Om du till exempel vill infoga ett polskt tecken kan sidan för databassorteringskod använda polska som sorteringsdesignator (till exempel Polish_100_CI_AS_SC) eller vara UTF-8 aktiverad. |
| DBTYPE_WSTR | DBTYPE_WSTR | Serverkonvertering från UTF-16 till kolumnsorteringskodsidan. | Ingen. |
Datahämtning från en UTF-8-kodad CHAR- eller VARCHAR-kolumn
När du skapar en buffert för hämtade data beskrivs bufferten med hjälp av en matris med DBBINDING-strukturer. Varje DBBINDING-struktur associerar en enda kolumn på den hämtade raden. Om du vill hämta kolumndata som CHAR anger du wType för DBBINDING-strukturen till DBTYPE_STR. Om du vill hämta kolumndata som WCHAR anger du wType för DBBINDING-strukturen till DBTYPE_WSTR.
För indikatorn för resultatbufferttyp DBTYPE_STR konverterar drivrutinen UTF-8-kodade data till klientkodningen. Användaren bör se till att klientkodningen kan representera data från UTF-8-kolumnen, annars kan dataförlust uppstå.
För indikatorn för resultatbufferttyp DBTYPE_WSTR konverterar drivrutinen UTF-8-kodade data till UTF-16-kodningen.
Kommunikation med servrar som inte stöder UTF-8
Microsoft OLE DB-drivrutinen för SQL Server säkerställer att data exponeras för servern på ett sätt som servern kan förstå. När du infogar data från UTF-8-aktiverade klienter översätter drivrutinen UTF-8-kodade strängar till sidan för databassorteringskod innan den skickas till servern.
Anmärkning
Användning av ISequentialStream-gränssnittet för att infoga UTF-8-kodade data i en äldre textkolumn är endast begränsat till servrar som stöder UTF-8. Mer information finns i BLOB och OLE-objekt.
Se även
OLE DB-drivrutin för SQL Server-funktioner
UTF-16-stöd i OLE DB-drivrutin för SQL Server