SQLBindCol

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instanceazure Synapse Analytics

Obecně platí, že je třeba zvažovat důsledky použití SQLBindCol pro převod dat. Převody vazeb jsou klientské procesy, takže například získání hodnoty s plovoucí desetinnou čárkou vázané na sloupec znaku způsobí, že ovladač provede převod z plovoucího na znak lokálně při načtení řádku. Funkce Transact-SQL CONVERT může být použita k určení nákladů na převod dat na server.

Instance SQL Server může při jednom příkazu vrátit více sad výsledkových řádků. Každá množina výsledků musí být vázána samostatně. Pro více informací o vázání pro více sad výsledků viz SQLMoreResults.

Vývojář může navázat sloupce na SQL Server specifické C datové typy pomocí hodnoty TargetTypeSQL_C_BINARY. Sloupce vázané na typy specifické pro SQL Server nejsou přenosné. Definované SQL Server-specifické datové typy ODBC C odpovídají definicím typů pro DB-Library a vývojáři DB-Library přenášení aplikací mohou tuto funkci chtít využít.

Reportování zkrácení dat je nákladný proces pro nativní klientský ODBC ovladač SQL Server. Zkrácení lze zabránit tím, že zajistíte, že všechny vázané datové buffery jsou dostatečně široké pro vrácení dat. U znakových dat by šířka měla obsahovat místo pro terminátor řetězce, pokud je použito výchozí chování ovladače pro ukončení řetězce. Například přiřazení sloupce SQL Server char(5) na pole pěti znaků vede k okrácení každé načtené hodnoty. Přiřazení stejného sloupce na pole šesti znaků se vyhne zkrácení tím, že poskytne znakový prvek, do kterého lze uložit nulový terminátor. SQLGetData lze použít k efektivnímu získávání dlouhých znakových a binárních dat bez ořezání.

U typů dat s velkou hodnotou, pokud uživatelem dodaný buffer není dostatečně velký pro celou hodnotu sloupce, vrátí se SQL_SUCCESS_WITH_INFO a "string data; Je vydáno varování o zkrácení pravé strany. Argument StrLen_or_IndPtr bude obsahovat počet znaků/bajtů uložených v bufferu.

Podpora SQLBindCol pro vylepšené funkce data a času

Hodnoty výsledků sloupců typů dat/času jsou převedeny podle popisu Konverze ze SQL do C. Všimněte si, že pro získání sloupců čas a čas a čas a posun jako jejich odpovídající struktury (SQL_SS_TIME2_STRUCT a SQL_SS_TIMESTAMPOFFSET_STRUCT) musí být Cílový typ specifikován jako SQL_C_DEFAULT nebo SQL_C_BINARY.

Další informace naleznete v tématu vylepšení data a času (ODBC).

Podpora SQLBindCol pro velké CLR UDT

SQLBindCol podporuje velké uživatelsky definované typy CLR (UDT). Další informace najdete v tématuVelké typy User-Defined CLR (ODBC).