Condividi tramite


SQLPutData

Quando si utilizza SQLPutData per inviare oltre 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 (text), SQL_WLONGVARCHAR (ntext) o SQL_LONGVARBINARY (image), si applicano le restrizioni seguenti:

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

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

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

[!NOTA]

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

Diagnostica

È previsto un solo errore SQLSTATE specifico di SQL Server Native Client per SQLPutData:

SQLSTATE

Errore

Descrizione

22026

Lunghezza dei dati non corrispondente.

Se la lunghezza in byte dei dati 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 fornito dall'applicazione tramite SQLPutData deve corrispondere alla lunghezza specificata.

SQLPutData e parametri con valori di tabella

SQLPutData viene utilizzato da un'applicazione quando si utilizza l'associazione variabile di righe con parametri con valori di tabella. Il parametro StrLen_Or_Ind indica che è pronto perché il driver raccolga 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 ulteriori informazioni, vedere la sezione relativa all'associazione di righe di parametri con valori di tabella in Associazione e trasferimento dati di valori di colonna e parametri con valori di tabella.

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

Per ulteriori 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 di parametro dei tipi di data/ora vengono convertiti come descritto in Conversioni da tipi di dati C a tipi di dati SQL.

Per ulteriori informazioni, vedere Miglioramenti relativi a 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 ulteriori informazioni, vedere Tipi CLR definiti dall'utente di grandi dimensioni (ODBC).

Vedere anche

Concetti

Dettagli di implementazione di API ODBC

Altre risorse

SQLPutData Function