FIX: Nessun record pu˛ essere restituito quando si chiama la funzione SQLExecute per eseguire un'istruzione preparata e si utilizza il driver ODBC SQL Native Client in SQL Server 2008

Traduzione articoli Traduzione articoli
Identificativo articolo: 957387 - Visualizza i prodotti a cui si riferisce l?articolo.
Bug #: 50003391 (SQL Hotfix)
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Si utilizza il driver di ODBC SQL per native client di Microsoft SQL Server 2008. Se si chiama la funzione SQLExecute per eseguire un'istruzione preparata, nessun record pu˛ essere restituito. Tuttavia, se si utilizza il driver ODBC SQL Native Client in SQL Server 2005 per chiamare la funzione SQLExecute , vengono restituiti i record.

Cause

Questo problema pu˛ verificarsi a causa di un bug nel driver di ODBC SQL Native Client in SQL Server 2008. Pu˛ verificarsi se si chiama la funzione SQLBindParameter prima di ogni funzione SQLExecute . Vedere la sezione "Informazioni" per ulteriori informazioni.

Risoluzione

Informazioni sull'aggiornamento cumulativo

La correzione di questo problema Ŕ stata rilasciata prima nell'aggiornamento cumulativo 1. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2008, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
956717Pacchetto di aggiornamento cumulativo 1 per SQL Server 2008
Nota PoichÚ le generazioni sono cumulative, ogni nuova versione di correzione contiene tutti gli aggiornamenti rapidi e tutte le correzioni protezione rilasciate con SQL Server 2008 precedente versione di correggere. Microsoft consiglia di considerare applicare la correzione rapida per la versione pi¨ recente che contiene questo aggiornamento rapido (hotfix). Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
956909Versioni di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008

Informazioni sull'hotfix

╚ disponibile un hotfix supportato. Questo hotfix Ŕ tuttavia destinato esclusivamente alla risoluzione del problema descritto in questo articolo. Consente di applicare questo aggiornamento rapido (hotfix) solo ai sistemi in cui si verifica questo problema specifico. Questo aggiornamento rapido (hotfix) potrebbe essere eseguiti ulteriori test. Se non si Ŕ notevolmente interessati da questo problema, si consiglia pertanto di attendere il successivo aggiornamento di software che contiene questo aggiornamento rapido (hotfix).

Se l'hotfix Ŕ disponibile per il download, Ŕ una sezione "Hotfix disponibile per il download" all'inizio di questo articolo della Knowledge Base. Se non viene visualizzato in questa sezione, Ŕ necessario contattare servizio clienti Microsoft e supporto tecnico per ottenere l'hotfix.

Nota Se si verificano ulteriori problemi o se la risoluzione dei problemi Ŕ necessario, potrebbe essere necessario creare una richiesta di servizio separato. I costi di supporto normale verranno applicati per eventuali ulteriori domande e problemi che non dovessero rientrare nello specifico hotfix in questione. Per un elenco completo, di Microsoft Customer Service and Support numeri di telefono o a creare una richiesta di servizio distinto, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota Il modulo "Hotfix disponibile per il download" Visualizza le lingue per cui Ŕ disponibile l'aggiornamento rapido. Se non viene visualizzata la lingua, Ŕ perchÚ un aggiornamento rapido (hotfix) non Ŕ disponibile per tale lingua.

Informazioni sui file

La versione di lingua inglese di questo aggiornamento rapido (hotfix) presenta gli attributi di file (o attributi successivi) elencati nella tabella riportata di seguito. Le date e le ore per questi file sono indicati in UTC (Coordinated Universal Time). Quando si visualizzano le informazioni sul file, viene convertito in ora locale. Per calcolare la differenza tra ora UTC e l'ora locale, utilizzare la scheda fuso orario dello Data e ora nel Pannello di controllo.
SQL Server 2008, edizioni a 32 bit
Riduci questa tabellaEspandi questa tabella
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
Kfsqlncli.dll2007.100.1755.016,92006-09-200815: 23x 86
Sqlncli10.dll2007.100.1755.02,459,67206-09-200815: 40x 86
SQL Server 2008, versioni a 64 bit
Riduci questa tabellaEspandi questa tabella
Nome del fileVersione del fileDimensione del fileDataOraPiattaforma
Kfsqlncli.dll2007.100.1755.017,43206-09-200820: 57x 64
Sqlncli10.dll2007.100.1755.03,158,55206-09-200821: 12x 64

Workaround

Per aggirare il problema, chiamare la funzione SQLBindParameter per una sola volta. Quando si chiama la funzione SQLBindParameter , assicurarsi di che verificano le condizioni seguenti:
  • L'argomento di ColumnSize Ŕ di dimensioni sufficienti.
  • L'argomento Strlen_or_IndPtr Ŕ impostata su SQL_NTS.
Dopo aver eseguita la prima chiamata alla funzione SQLExecute , il nuovo valore di stringa pu˛ essere copiato nell'argomento ParameterValuePtr .

Status

Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a".

Informazioni

Questo problema si verifica con la chiamata di funzione SQLBindParameter . Se il buffer precedente corrisponde a quella della lunghezza del seguente valore, un re-prepare dell'istruzione non viene generato. Nell'esempio riportato di seguito da una traccia ODBC, il buffer del parametro iniziale corrisponda alla lunghezza del seguente nuovo parametro.

Parametro iniziale:
-b6c EC8 EXIT SQLBindParameter con codice restituito 0 (SQL_SUCCESS)
HSTMT 05A8E260
UWORD 1
A TAGLIO 1 <SQL_PARAM_INPUT>
A TAGLIO-8 <SQL_C_WCHAR>
A TAGLIO-9 <SQL_WVARCHAR>
SQLULEN 7
SWORD 0
PTR 0X028C8A98
SQLLEN 65535
SQLLEN * 0X050506F8 (14)
Nuovo parametro seguente:
-b6c EC8 EXIT SQLBindParameter con codice restituito 0 (SQL_SUCCESS)
HSTMT 05A8E260
UWORD 1
A TAGLIO 1 <SQL_PARAM_INPUT>
A TAGLIO-8 <SQL_C_WCHAR>
A TAGLIO-9 <SQL_WVARCHAR>
SQLULEN 14
SWORD 0
PTR 0X028C4F80
SQLLEN 65535
SQLLEN * 0X050506F8 (28)

Riferimenti

Per ulteriori informazioni sulla funzione SQLExecute , visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn.microsoft.com/en-us/library/ms713584(VS.85).aspx
Per ulteriori informazioni sulla funzione SQLBindParameter , visitare il seguente sito Web MSDN:
http://msdn.microsoft.com/en-us/library/ms710963(VS.85).aspx

ProprietÓ

Identificativo articolo: 957387 - Ultima modifica: lunedý 17 novembre 2008 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
Chiavi:á
kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 957387
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com