Udostępnij za pośrednictwem


SQLPutData

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Następujące ograniczenia dotyczą wysyłania ponad 65 535 bajtów danych (w przypadku programu SQL Server w wersji 4.21a) lub 400 KB danych (dla programu SQL Server w wersji 6.0 lub nowszej) dla kolumny SQL_LONGVARCHAR (tekstu), SQL_WLONGVARCHAR (ntext) lub SQL_LONGVARBINARY (obrazu) :

  • Przywoływny parametr może być insert_value w instrukcji INSERT.

  • Przywoływanego parametru może być wyrażeniem w klauzuli SET instrukcji UPDATE.

Anulowanie sekwencji wywołań SQLPutData, które dostarczają dane w blokach na serwerze z uruchomionym programem SQL Server, powoduje częściową aktualizację wartości kolumny w przypadku używania wersji 6.5 lub starszej. Tekst , ntextlub kolumna obrazu, do którego odwołuje się wywoływana kolumna SQLCancel, jest ustawiona na wartość symbolu zastępczego pośredniego.

Nuta

Sterownik ODBC klienta natywnego programu SQL Server nie obsługuje nawiązywania połączenia z programem SQL Server w wersji 6.5 lub starszej.

Diagnostyka

Istnieje jeden element SQL Server Native Client specyficzny dla sqlSTATE dla sqlPutData:

SQLSTATE Błąd Opis
22026 Dane ciągu, niezgodność długości Jeśli długość danych w bajtach do wysłania została określona przez aplikację, na przykład z SQL_LEN_DATA_AT_EXEC(n), gdzie n jest większa niż 0, łączna liczba bajtów podanych przez aplikację za pośrednictwem sqlPutData musi być zgodna z określoną długością.

Parametry SQLPutData i Table-Valued

Funkcja SQLPutData jest używana przez aplikację podczas używania powiązania wiersza zmiennej z parametrami wartości tabeli. Parametr StrLen_Or_Ind wskazuje, że jest gotowy dla sterownika do zbierania danych dla następnego wiersza lub wierszy danych parametrów wartości tabeli lub że nie są dostępne żadne wiersze:

  • Wartość większa niż 0 wskazuje, że jest dostępny następny zestaw wartości wierszy.

  • Wartość 0 wskazuje, że nie ma więcej wierszy do wysłania.

  • Każda wartość mniejsza niż 0 jest błędem i powoduje zarejestrowanie rekordu diagnostycznego za pomocą parametru SQLState HY090 oraz komunikat "Nieprawidłowy ciąg lub długość buforu".

Parametr DataPtr jest ignorowany, ale musi być ustawiony na wartość inną niż NULL. Aby uzyskać więcej informacji, zobacz sekcję w zmiennej powiązania wiersza TVP w powiązanie i transfer danych parametrów Table-Valued i wartości kolumny.

Jeśli StrLen_Or_Ind ma dowolną wartość inną niż SQL_DEFAULT_PARAM lub liczbę z zakresu od 0 do SQL_PARAMSET_SIZE (czyli parametr ColumnSize SQLBindParameter), jest to błąd. Ten błąd powoduje zwrócenie SQL_ERROR SQLPutData: SQLSTATE=HY090, "Nieprawidłowy ciąg lub długość buforu".

Aby uzyskać więcej informacji na temat parametrów wartości tabeli, zobacz Table-Valued Parameters (ODBC).

Obsługa sqlPutData dla rozszerzonych funkcji daty i godziny

Wartości parametrów typów daty/godziny są konwertowane zgodnie z opisem w Konwersje z języka C naSQL .

Aby uzyskać więcej informacji, zobacz ulepszenia daty i godziny (ODBC).

Obsługa protokołu SQLPutData dla dużych tras ZDEFINIOWANYch przez clR

SQLPutData obsługuje duże typy zdefiniowane przez użytkownika CLR (UTS). Aby uzyskać więcej informacji, zobacz large CLR User-Defined Types (ODBC).

Zobacz też

funkcji SQLPutData
szczegóły implementacji interfejsu API ODBC