Kommentar
Å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
Analytics Platform System (PDW)
Som en allmän regel, överväg konsekvenserna av att använda SQLBindCol för att orsaka datakonvertering. Bindningskonverteringar är klientprocesser, så till exempel gör att hämta ett flyttalsvärde bundet till en teckenkolumn att drivrutinen utför flyttal-till-tecken-konverteringen lokalt när en rad hämtas. Funktionen Transact-SQL CONVERT kan användas för att lägga kostnaden för datakonvertering på servern.
En instans av SQL Server kan returnera flera uppsättningar resultatrader vid en enda satsexekvering. Varje resultatmängd måste bindas separat. För mer information om bindning för flera resultatuppsättningar, se SQLMoreResults.
Utvecklaren kan binda kolumner till SQL Server-specifika C-datatyper med hjälp av TargetType-värdetSQL_C_BINARY. Kolumner som är bundna till SQL Server-specifika typer är inte portabla. De definierade SQL Server-specifika ODBC C-datatyperna stämmer överens med typdefinitionerna för DB-Library, och DB-Library utvecklare som portar applikationer kan vilja dra nytta av denna funktion.
Rapportering av datatrunkering är en kostsam process för SQL Server Native Client ODBC-drivrutinen. Du kan undvika trunkering genom att se till att alla bundna databuffertar är tillräckligt breda för att returnera data. För teckendata bör bredden inkludera utrymme för en strängterminator när standarddrivrutinsbeteendet för strängterminering används. Till exempel innebär bindning av en SQL Server char(5)-kolumn till en array med fem tecken en trunkering för varje värde som hämtas. Att binda samma kolumn till en array med sex tecken undviker trunkeringen genom att tillhandahålla ett teckenelement för att lagra nullterminatorn. SQLGetData kan användas för att effektivt hämta långtecken- och binärdata utan att behöva förkortas.
För datatyper med stora värden, om den användartillhandahållna bufferten inte är tillräckligt stor för att hålla hela kolumnens värde, returneras SQL_SUCCESS_WITH_INFO och "strängdatan; höger avkortning" varning utfärdas. Argumentet StrLen_or_IndPtr innehåller antalet tecken/byte som lagras i bufferten.
SQLBindCol-stöd för förbättrade datum- och tidsfunktioner
Resultatkolumnvärden för datum/tid-typer konverteras enligt beskrivningen i Konverteringar från SQL till C. Observera att för att hämta tid- och datumtidsavskjutningskolumner som motsvarande strukturer (SQL_SS_TIME2_STRUCT och SQL_SS_TIMESTAMPOFFSET_STRUCT) måste TargetType anges som SQL_C_DEFAULT eller SQL_C_BINARY.
Mer information finns i Förbättringar av datum och tid (ODBC).
SQLBindCol-stöd för stora CLR UDT:er
SQLBindCol stöder stora CLR-användardefinierade typer (UDT). Mer information finns i Large CLR User-Defined Types (ODBC).