Al momento sei offline in attesa che la connessione Internet venga ristabilita

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

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
Bug #: 50003391 (SQL Hotfix)
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: 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
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
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): Per ulteriori informazioni sulla funzione SQLBindParameter , visitare il seguente sito Web MSDN:

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 957387 - Ultima revisione: 11/17/2008 16:54:49 - Revisione: 2.0

Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Standard Edition for Small Business

  • kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 KbMtit
Feedback
ment('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">