Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque des erreurs se produisent pendant l'exécution d'une application SQL Server 2005 Compact Edition (SQL Server Compact Edition), le fournisseur OLE DB de SQL Server Compact Edition renvoie et stocke un tableau d'objets d'erreur. Ces objets sont ensuite accessibles par le biais d'OLE DB selon la procédure habituelle. Le fournisseur OLE DB de SQL Server Compact Edition retourne des erreurs pour chaque interface qu'il prend en charge. Pour plus d'informations, consultez Interfaces OLE DB implémentées (SQL Server Compact Edition). Pour plus d'informations sur le mécanisme général par lequel un client OLE DB récupère des informations sur les erreurs, consultez la section Microsoft OLE DB de la documentation du Kit de développement logiciel (SDK) Microsoft Data Access Components (MDAC) sur le site de MSDN Library.
Exemples
L'exemple suivant indique comment extraire les numéros d'erreur spécifiques au fournisseur lorsque vous utilisez le fournisseur OLE DB de SQL Server Compact Edition.
/* This code sample demonstrates a routine that can handle and display errors from the OLE DB provider for SQL Server Compact Edition. The interface returning the error is pIUnknown, and riid is the REFIID of that interface.*/
// QueryInterface for the ISupportErrorInfo interface
hr = pIUnknown->QueryInterface(IID_ISupportErrorInfo,
(void**)&pISupportErrorInfo);
if(FAILED(hr) || NULL == pISupportErrorInfo)
return;
// Determine whether the interface even supports errors. If it does,
// ISupportErrorInfo will return S_OK for that interface.
hr = pISupportErrorInfo->InterfaceSupportsErrorInfo(riid);
pISupportErrorInfo->Release(); // release unnecessary interface
if(S_OK == hr)
{
// This interface supports returning error information.
// Get the error object from the system for this thread.
hr = GetErrorInfo(0, &pIErrorInfo);
if(FAILED(hr) || NULL == pIErrorInfo)
{
return;
}
hr = pIErrorInfo->QueryInterface(IID_IErrorRecords,
(void **) &pIErrorRecords);
pIErrorInfo->Release(); // Release unnecessary interface
// Determine the number of records in this error object
hr = pIErrorRecords->GetRecordCount(&ulNumErrorRecs);
// Loop over each error record in the error object to display
// information about each error. Errors are returned.
for (dwErrorIndex = 0; dwErrorIndex < ulNumErrorRecs; dwErrorIndex++)
{
// Attempt to retrieve basic error information for this error.
hr = pIErrorRecords->GetBasicErrorInfo(dwErrorIndex, &ErrorInfo);
// Retrieve standard error information for this error.
hr = pIErrorRecords->GetErrorInfo(dwErrorIndex, NULL,
&pIErrorInfoRecord);
// Get the description of the error.
hr = pIErrorInfoRecord->GetDescription(&bstrDescriptionOfError);
// Get the source of the error.
hr = pIErrorInfoRecord->GetSource(&bstrSourceOfError);
if(NULL != pIErrorInfoRecord)
{
pIErrorInfoRecord->Release(); // Release unnecessary interface
}
// Print the native error number for this error. Error numbers are
// are documented in the Troubleshooting section.
wprintf(L"Native Error Code: %l\n", ErrorInfo.dwMinor);
}
pIErrorRecords->Release(); // Release unnecessary interface.
}
}
Voir aussi
Référence
Programmation d'OLE DB pour SQL Server Compact Edition