Megosztás:


SQLPutData

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

A következő korlátozások érvényesek, ha az SQLPutData használatával több mint 65 535 bájtnyi adatot küld el (az SQL Server 4.21a-es verziójához) vagy 400 KB adatot (az SQL Server 6-os verziójához). 0 és újabb) SQL_LONGVARCHAR (szöveg), SQL_WLONGVARCHAR (ntext) vagy SQL_LONGVARBINARY (kép) oszlop esetén:

  • A hivatkozott paraméter lehet az INSERT utasítás insert_value.

  • A hivatkozott paraméter lehet egy kifejezés, az UPDATE utasítás SET záradékában.

Ha megszakítja az SQL Servert futtató kiszolgáló blokkjait tartalmazó SQLPutData-hívások sorozatát, az az oszlop értékének részleges frissítését okozza a 6.5-ös vagy korábbi verzió használatakor. A szöveges, ntextvagy kép oszlop, amely az SQLCancel meghívásakor hivatkozott, köztes helyőrző értékre van állítva.

Jegyzet

Az SQL Server natív ügyfél ODBC-illesztőprogramja nem támogatja az SQL Server 6.5-ös és korábbi verziójához való csatlakozást.

Diagnosztika

Az SQLPutData-hoz egy SQL Server natív ügyfélspecifikus SQLSTATE tartozik:

SQLSTATE Hiba Leírás
22026 Sztringadatok, hosszeltérés Ha az elküldendő bájtokban lévő adatok hosszát egy alkalmazás adta meg, például SQL_LEN_DATA_AT_EXEC(n), ahol n nagyobb, mint 0, akkor az alkalmazás által az SQLPutData-on keresztül megadott bájtok teljes számának meg kell egyeznie a megadott hosszúságsal.

SQLPutData és Table-Valued paraméterek

Az SQLPutData-t egy alkalmazás használja változósor-kötés táblaértékkel rendelkező paraméterekkel való használatakor. A StrLen_Or_Ind paraméter azt jelzi, hogy készen áll arra, hogy az illesztő adatokat gyűjtsön a következő sorhoz vagy sorhoz a táblaértékben megadott paraméteradatokhoz, vagy hogy nincs több sor:

  • A 0-nál nagyobb érték azt jelzi, hogy a sorértékek következő készlete elérhető.

  • A 0 érték azt jelzi, hogy nincs több elküldendő sor.

  • A 0-nál kisebb érték hiba, és egy diagnosztikai rekordot naplóz az SQLState HY090 és az "Érvénytelen sztring vagy pufferhossz" üzenettel.

A DataPtr paraméter figyelmen kívül lesz hagyva, de nem NULL értékre kell állítani. További információkért lásd a változó TVP-sorkötésről szóló szakaszt paraméterek és oszlopértékek Table-Valued kötése és adatátvitele.

Ha StrLen_Or_Ind SQL_DEFAULT_PARAM vagy 0 és SQL_PARAMSET_SIZE közötti számmal rendelkezik (vagyis az SQLBindParameter oszlopméretének paramétere), az hiba. Ez a hiba miatt az SQLPutData a következő SQL_ERROR ad vissza: SQLSTATE=HY090, "Érvénytelen sztring vagy pufferhossz".

A táblaértékű paraméterekkel kapcsolatos további információkért lásd Table-Valued Paraméterek (ODBC)című témakört.

Az SQLPutData továbbfejlesztett dátum- és időfunkcióinak támogatása

A dátum/idő típusú paraméterértékeket a rendszer C-ről SQL-konvertálása című cikkben leírtak szerint konvertálja.

További információ: Dátum- és időjavítások (ODBC).

SQLPutData-támogatás nagyméretű CLR-UDT-khez

SQLPutData támogatja a nagy CLR felhasználó által definiált típusok (UDT-k) használatát. További információ: Large CLR User-Defined Types (ODBC).

Lásd még:

SQLPutData-függvény
ODBC API implementálásának részletei