SQLPutData

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

Quando si usa SQLPutData per inviare più di 65.535 byte di dati (per SQL Server versione 4.21a) o 400 KB di dati (per SQL Server versione 6.0 e successive) per una colonna SQL_LONGVARCHAR (testo), SQL_WLONGVARCHAR (ntext) o SQL_LONGVARBINARY (immagine):

  • Il parametro a cui si fa riferimento può essere il insert_value in un'istruzione INSERT.

  • Il parametro a cui si fa riferimento può essere un'espressione nella clausola SET di un'istruzione UPDATE.

L'annullamento di una sequenza di chiamate SQLPutData che forniscono dati in blocchi a un server che esegue SQL Server causa un aggiornamento parziale del valore della colonna quando si usa la versione 6.5 o precedente. La colonna text, ntext o image a cui si fa riferimento quando è stato chiamato SQLCancel è impostata su un valore segnaposto intermedio.

Nota

Il driver ODBC di SQL Server Native Client non supporta la connessione a SQL Server versione 6.5 e precedenti.

Diagnostica

Sql Server Native Client specifico di SQLState per SQLPutData:

SQLSTATE Errore Descrizione
22026 Lunghezza dei dati non corrispondente. Se la lunghezza dei dati in byte da inviare è stata specificata da un'applicazione, ad esempio con SQL_LEN_DATA_AT_EXEC(n) dove n è maggiore di 0, il numero totale di byte specificati dall'applicazione tramite SQLPutData deve corrispondere alla lunghezza specificata.

SQLPutData e parametri con valori di tabella

SQLPutData viene usato da un'applicazione quando si usa l'associazione di righe variabile con parametri con valori di tabella. Il parametro StrLen_Or_Ind indica che è pronto per il driver per raccogliere dati per la riga o le righe successive dei dati dei parametri con valori di tabella o che non sono disponibili altre righe:

  • Un valore maggiore di 0 indica che è disponibile il set di valori di riga successivo.

  • Il valore 0 indica che non sono disponibili altre righe da inviare.

  • Qualsiasi valore minore di 0 rappresenta un errore e restituisce un record di diagnostica registrato con SQLState HY090 e il messaggio "Lunghezza di stringa o di buffer non valida".

Il parametro DataPtr viene ignorato, ma deve essere impostato su un valore non NULL. Per altre informazioni, vedere la sezione sull'associazione di righe VARIABILE TVP in Binding e Trasferimento dati di parametri con valori di tabella e valori di colonna.

Se StrLen_Or_Ind ha un valore diverso da SQL_DEFAULT_PARAM o un numero compreso tra 0 e il SQL_PARAMSET_SIZE , ovvero il parametro ColumnSize di SQLBindParameter, si tratta di un errore. A causa di questo errore, SQLPutData restituisce SQL_ERROR: SQLSTATE=HY090, "Lunghezza di stringa o di buffer non valida".

Per altre informazioni sui parametri con valori di tabella, vedere Parametri con valori di tabella (ODBC).

Supporto di SQLPutData per le caratteristiche avanzate di data e ora

I valori dei parametri dei tipi di data/ora vengono convertiti come descritto in Conversioni da C a SQL.

Per altre informazioni, vedere Miglioramenti di data e ora (ODBC).

Supporto di SQLPutData per i tipi CLR definiti dall'utente di grandi dimensioni

SQLPutData supporta tipi CLR definiti dall'utente di grandi dimensioni. Per altre informazioni, vedere Tipi CLR definiti dall'utente (ODBC) di grandi dimensioni.

Vedi anche

Funzione SQLPutData
Dettagli di implementazione dell'API ODBC