SQLPutData
platí pro:SQL ServerAzure SQL Databaseazure SQL Managed InstanceAzure Synapse AnalyticsPlatform Platform System (PDW)
Následující omezení platí při použití SQLPutData k odesílání více než 65 535 bajtů dat (pro SQL Server verze 4.21a) nebo 400 kB dat (pro SQL Server verze 6.) 0 a novější) pro sloupec SQL_LONGVARCHAR (textové), SQL_WLONGVARCHAR (ntextové) nebo SQL_LONGVARBINARY (obrázek):
Odkazovaný parametr může být insert_value v příkazu INSERT.
Odkazovaný parametr může být výraz v klauzuli SET příkazu UPDATE.
Zrušení posloupnosti volání SQLPutData, která poskytují data v blocích na serveru, na kterém běží SQL Server, způsobí částečnou aktualizaci hodnoty sloupce při použití verze 6.5 nebo starší. Text , ntextnebo obrázek sloupec, na který byl odkazován při volání SQLCancel, je nastaven na zprostředkující hodnotu zástupného symbolu.
Poznámka
Ovladač ODBC nativního klienta SQL Serveru nepodporuje připojení k SQL Serveru verze 6.5 a starší.
Diagnostika
Pro SQLPutData existuje jeden SQL Server Native Client specifický pro SQLState:
SQLSTATE | Chyba | Popis |
---|---|---|
22026 | Řetězcová data, neshoda délky | Pokud byla například aplikace určena délkou dat v bajtech, která má být odeslána, s SQL_LEN_DATA_AT_EXEC(n), kde n je větší než 0, musí celkový počet bajtů zadaný aplikací přes SQLPutData odpovídat zadané délce. |
Parametry SQLPutData a Table-Valued
SQLPutData používá aplikace při použití vazby řádku proměnné s parametry hodnot tabulky. Parametr StrLen_Or_Ind označuje, že je připravený pro ovladač shromažďovat data pro další řádek nebo řádky dat parametrů s hodnotou tabulky nebo že nejsou k dispozici žádné další řádky:
Hodnota větší než 0 označuje, že je k dispozici další sada hodnot řádků.
Hodnota 0 značí, že se neposílají žádné další řádky.
Jakákoli hodnota menší než 0 je chyba a výsledkem je zaprotokolování diagnostického záznamu pomocí sqlState HY090 a zpráva "Neplatný řetězec nebo délka vyrovnávací paměti".
Parametr DataPtr je ignorován, ale musí být nastaven na hodnotu, která není null. Další informace najdete v části o vazbě řádku TVP proměnné v vazbě a přenosu dat parametrů Table-Valued a hodnot sloupců.
Pokud má StrLen_Or_Ind jinou hodnotu než SQL_DEFAULT_PARAM nebo číslo v rozsahu 0 až SQL_PARAMSET_SIZE (tj. parametr ColumnSize parametru SQLBindParameter), jedná se o chybu. Tato chyba způsobí, že sqlPutData vrátí SQL_ERROR: SQLSTATE=HY090, "Neplatný řetězec nebo délka vyrovnávací paměti".
Další informace o parametrech hodnot tabulky naleznete v tématu Table-Valued Parametry (ODBC).
Podpora SQLPutData pro rozšířené funkce data a času
Hodnoty parametrů typů data a času jsou převedeny, jak je popsáno v Převody z jazyka C na SQL.
Další informace naleznete v tématu vylepšení data a času (ODBC).
Podpora SQLPutData pro velké UDT CLR
SQLPutData podporuje velké uživatelem definované typy CLR (UDT). Další informace najdete v tématu
Viz také
funkce
podrobnosti implementace rozhraní ODBC API