SQLPutData
Le restrizioni seguenti si applicano 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 successiva) per un SQL_LONGVARCHAR (), SQL_WLONGVARCHAR (ntext
) oimage
SQL_LONGVARBINARY (text
):
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 text
colonna , ntext
o image
a cui è stato fatto riferimento quando SQLCancel è stato chiamato è impostata su un valore segnaposto intermedio.
Nota
Il driver ODBC SQL Server Native Client non supporta la connessione a SQL Server versione 6.5 e versioni precedenti.
Diagnostica
È disponibile un SQL Server Native Client SQLSTATE specifico 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 di variabili 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 più 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 relativa all'associazione di righe Variabile TVP in Binding e Trasferimento dati di parametri e valori di colonna Table-Valued.
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 i tipi CLR definiti dall'utente di grandi dimensioni. Per altre informazioni, vedere Tipi di User-Defined CLR di grandi dimensioni (ODBC).
Vedere anche
SQLPutData Function
Dettagli di implementazione dell'API ODBC