FIX: Messaggio di errore quando si esegue un'applicazione basata su SQL Server 2008 che chiama la funzione SQLBindParameter: "Il flusso del protocollo di chiamata di procedura remota (RPC) del flusso di dati tabulari in ingresso (TDS) non è corretto"

Microsoft distribuisce le correzioni di Microsoft SQL Server 2008 come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e di sicurezza incluse nella versione precedente di correzioni di SQL Server 2008.

Sintomi

In un'applicazione si usa il driver di SQL Server 2008 Native Client. La funzione SQLBindParameter viene chiamata per associare un parametro con un tipo di dati a caratteri wide per una query. Ad esempio, si associa un parametro del tipo di dati NCHAR o del tipo di dati NVARCHAR. L'applicazione passa un valore maggiore di 4.000 al parametro ColumnSize della funzione SQLBindParameter. Quando si esegue la query nell'applicazione, viene visualizzato il messaggio di errore seguente:

Nota

Il flusso del protocollo Remote Procedure Call (RPC) del flusso di dati tabulari (TDS) in ingresso non è corretto. Parametro 1 (""): il tipo di dati 0xE7 ha una lunghezza dei dati o dei metadati non valida.

Nota: questo messaggio di errore è un messaggio di errore lato server. Se l'applicazione utilizza invece il driver di SQL Server 2005 Native Client, viene visualizzato il seguente messaggio di errore sul lato client come previsto:

Nota

[Microsoft][Client nativo di SQL]Valore di precisione non valido

Causa

Questo problema si verifica perché il driver di SQL Server 2008 Native Client non esegue un controllo di runtime delle dimensioni della colonna di input per la funzione SQLBindParameter. Inoltre, il driver raddoppia le dimensioni della colonna se la dimensione della colonna di input è maggiore di 4.000 e il parametro è un tipo di dati a caratteri wide. Di conseguenza, SQL Server restituisce un errore sul lato server che indica che il parametro supera il limite superiore (8.000).

Nota: il driver di SQL Server 2005 Native Client esegue un controllo di runtime per le dimensioni della colonna di input. Pertanto, se la dimensione della colonna di input è maggiore di 8.000, il driver di SQL Server 2005 Native Client restituisce un errore sul lato client.

Risoluzione

La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 3 per SQL Server 2008 Service Pack 1. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

971491 Pacchetto di aggiornamento cumulativo 3 per SQL Server 2008 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutte le correzioni rapide e di sicurezza incluse nella versione di correzione di SQL Server 2008 precedente. Microsoft consiglia di applicare l'ultima versione della correzione che contiene questo aggiornamento rapido (hotfix). Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

970365 Le SQL Server build 2008 rilasciate dopo SQL Server rilascio del Service Pack 1 2008
Gli hotfix per Microsoft SQL Server 2008 vengono creati per Service Pack specifici di SQL Server. È necessario applicare un aggiornamento rapido rapido per SQL Server 2008 Service Pack 1 a un'installazione di SQL Server 2008 Service Pack 1. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel service pack di SQL Server successivo.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Riferimenti

Per ulteriori informazioni sul modello di servizio incrementale per SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

935897 un modello di manutenzione incrementale è disponibile dal team SQL Server per fornire correzioni rapide per i problemi segnalati

Per ulteriori informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

822499 Nuovo schema di denominazione per i pacchetti di aggiornamento software Microsoft SQL Server

Per ulteriori informazioni sulla terminologia degli aggiornamenti software, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft