Sdílet prostřednictvím


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ématuVelké typy User-Defined CLR (ODBC).

Viz také

funkce SQLPutData
podrobnosti implementace rozhraní ODBC API