FIX: Passaggio ADO Recordset ByRef Reimposta informazioni sugli errori

Traduzione articoli Traduzione articoli
Identificativo articolo: 264701 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo Ŕ stato archiviato. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.
Espandi tutto | Chiudi tutto

Sintomi

Se si passa un recordset ADO utilizzando un parametro di metodo ByRef a un oggetto COM di out-of-process di e l'oggetto COM out-of-process di genera un errore, Ŕ possibile che queste informazioni di errore non vengano segnalate correttamente all'applicazione client.

Cause

Quando un recordset ADO Ŕ marshalled-uscita del processo utilizzando un parametro di metodo ByRef, viene attivato il codice di marshalling personalizzato implementato da ADO sui lati del client e il server e il codice Reimposta l'oggetto di errore OLE in sospeso generata dall'oggetto COM.

Risoluzione

Questo problema Ŕ stato risolto nei service pack pi¨ recenti per Windows 2000 e MDAC 2.5.
  • Per risolvere questo problema Ŕ necessario ottenere la versione pi¨ recente del service pack per Windows 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    260910Come ottenere Windows 2000 Service Pack pi¨ recente
  • Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft Data Access Components 2.5. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    293312INFORMAZIONI: Come ottenere il pi¨ recente MDAC 2.5 Service Pack
   Date        Time   Version      Size     File name     Platform
   ---------------------------------------------------------------
   06/09/2000  13:02  2.50.5408.0  327,952  Msadce.dll    x86 
   06/09/2000  12:46  2.50.5408.0  487,696  Msado15.dll   x86 
				

Workaround

Una soluzione consiste nel passare un recordset ADO utilizzando un parametro di ByVal e quindi restituire un recordset ADO utilizzando un valore restituito.

Status

Microsoft ha confermato che questo problema riguarda i prodotti Microsoft elencati all'inizio di questo articolo. Questo problema Ŕ stato innanzitutto corretto in Microsoft Data Access Components 2.5 Service Pack 2 e Microsoft Windows 2000 Service Pack 2.

Informazioni

Un parametro ByRef Ŕ un parametro del metodo di COM definito dalla libreria dei tipi dell'oggetto COM come parametro [in, out]. In Microsoft Visual Basic (VB), se si crea un oggetto COM e si aggiunta la parola chiave ByRef prima di un parametro del metodo, Visual Basic verranno impostate da questo metodo per entrambi accettare e restituire una variabile di oggetto utilizzando la direttiva [in, out] nella libreria dei tipi dell'oggetto COM.

Questo problema Ŕ stato riprodotto nelle seguenti situazioni:
  1. Un server di Visual Basic o file EXE COM di Visual c ++ che entrambi accetta un recordset ADO utilizzando ByRef [in, out] e all'interno del metodo chiamata genera un errore.
  2. Un Visual Basic o Visual c ++ COM DLL ospitato in MTS o COM + che entrambi accetta un recordset ADO ByRef [in, out] e all'interno del metodo chiamata genera un errore.
In questi casi, non viene segnalato l'errore effettivo generato dal componente COM al client; invece l'errore "metodo ' ~ ' dell'oggetto' ~ ' non riuscita" viene segnalato.

Si noti che Ŕ necessario applicare questa correzione per i computer client e server per risolvere il problema nei casi in cui sono in due computer indipendenti, ad esempio, quando si utilizza DCOM per un server COM remoto, client e server COM.

ProprietÓ

Identificativo articolo: 264701 - Ultima modifica: lunedý 24 febbraio 2014 - Revisione: 2.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Data Access Components 2.5
Chiavi:á
kbnosurvey kbarchive kbmt kbqfe kbhotfixserver kbbug kbfix kbmdac250sp2fix KB264701 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: 264701
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.

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