[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]

This sample works only with SQL Server 2005 and SQL Server 2008. It will not work with any version of SQL Server earlier than SQL Server 2005.

The sample shows a simple error handler that calls SQLGetDiagRec for the standard ODBC information. It then tests for a valid connection, and if there is, it calls SQLGetDiagField for the Microsoft® SQL Server™ ODBC driver-specific diagnostic fields. This sample is not supported on IA64.

Scenario

For more information on this sample, see How to: Process ODBC Errors (ODBC) in Books Online.

Languages

This sample uses Visual C++.

Prerequisites

Before running this sample, make sure the following software is installed:

  • SQL Server or SQL Server Express including Database Engine.

    You can download SQL Server Express from the Microsoft Download Center.

  • The AdventureWorks database which is included with SQL Server, and is also available at the Microsoft SQL Server Developer Center.

  • The SQL Server Database Engine samples. These samples are included with SQL Server. You can download the latest version of the samples at the Microsoft SQL Server Developer Center.

  • .NET Framework SDK 2.0 or Microsoft Visual Studio 2005. You can obtain .NET Framework SDK free of charge. See Installing the .NET Framework SDK.

  • You will also need an ODBC data source called AdventureWorks, whose default database is the AdventureWorks sample database.

Building the Sample

  • This sample connects to your computer's default SQL Server instance. To connect to a named instance, change the definition of the ODBC data source to specify the instance using the following format: server\named_instance. By default, SQL Server Express installs to a named instance.

  • The sample requires you to execute the following stored procedure, which you can find in the sample's scripts directory:

    use AdventureWorks
    IF EXISTS (SELECT name FROM sysobjects WHERE name = 'BadOne')
       DROP PROCEDURE BadOne
    
    Go
    
    CREATE PROCEDURE BadOne 
    AS 
    SELECT * FROM Purchasing.Vendor
    Go
    In SQL Server Management Studio, load and execute the Scripts\setup.sql script or execute the following command in a Command Prompt window:

    sqlcmd -E -I -i Scripts\setup.sql
  • If you are using Visual Studio, load the ProcessODBCErrors.sln file and build it.

  • If you are using MSBuild.exe, invoke MSBuild.exe in a Command Prompt, passing it the ProcessODBCErrors.sln file:

    MSBuild ProcessODBCErrors.sln

Running the Sample

  • From Visual Studio, invoke Start Without Debugging (CTRL+F5).

  • If you built with MSBuild.exe, invoke ProcessODBCErrors.exe.