Article ID: 308651
Article Last Modified on 8/31/2005
APPLIES TO
- Microsoft ADO.NET 1.1
- Microsoft ADO.NET 1.0
- Microsoft Visual C++ .NET 2003 Standard Edition
- Microsoft Visual C++ .NET 2002 Standard Edition
This article was previously published under Q308651
For a Microsoft Visual Basic .NET version of this article, see 308043.
For a Microsoft Visual C# .NET version of this article, see 308650.
This article refers to the System::Data::OleDb namespace in the Microsoft .NET Framework Class Library.
SUMMARY
Managed providers can raise several exceptions. To obtain more detailed information about the cause, you need access to provider-specific error information. This article shows how to gather this information.
Requirements
The following list outlines the recommended hardware, software, network infrastructure, and service packs that are required:
- Microsoft .NET Framework
- Microsoft Visual C++ .NET
This article assumes that you are familiar with the following topics:
- Exceptions and error handling
- Microsoft OLE DB
Technique description
You must wrap your code in a "try... catch" block to catch the exception and process the error collection from the OLEDBException.
Create project and add code
- Create a new Managed C++ application. Name the project ProviderError.
Open the ProviderError.CPP file. Copy the following code and paste it in to replace the default code built in by Microsoft Visual Studio .NET:
#include "stdafx.h" #using <mscorlib.dll> #using <System.dll> #using <System.Data.dll> using namespace System; using namespace System::Data::OleDb; // This is the entry point for this application #ifdef _UNICODE int wmain(void) #else int main(void) #endif { OleDbConnection *myCn = new OleDbConnection("Provider=SQLOLEDB.1;Data Source=MyWrongServerName"); try { myCn->Open(); } catch(OleDbException *ex) { Int32 i; for (i = 0; i <= ex->Errors->Count - 1; i++) { Console::WriteLine("Index # {0} \n Message: {1} \n Native: {2}" "\n Source: {3} \n SQL: {4} \n", i.ToString(), ex->Errors->Item[i]->Message, ex->Errors->Item[i]->NativeError.ToString(), ex->Errors->Item[i]->Source, ex->Errors->Item[i]->SQLState); } } return 0; }
- On the Debug menu, click Run without Debugging to run the application. A console window that contains the provider error should appear after about 10 to 15 seconds.
Troubleshooting
If you have a server called "MyWrongServerName", you may not get an error message.
Keywords: kbhowtomaster kbsystemdata KB308651