2/12/2008 9:30:29 PM
[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 2008. It will not work with any version of SQL Server earlier than SQL Server 2008.
This sample does the following:
-
Creates table-valued parameters by using dynamic discovery though IOpenRowset::OpenRowset.
-
Sends table-valued parameter rows by using the pull model in the EmployeesRowset class. In the pull model, the consumer provides data on demand to the provider.
-
Sends BLOBs as part of a table-valued parameter in the CPhotograph class.
-
Uses custom parameter properties using ISSCommandWithParameters.
-
Shows error handling for SQLNCLI10 errors.
SQL Server samples and sample databases must be downloaded and installed before you can view or work with them. For more information, see Considerations for Installing SQL Server Samples and Sample Databases.
Scenario
For more information about table-valued parameters, see Table-Valued Parameters (SQL Server Native Client) in SQL Server 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 theMicrosoft Download 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 later) or Microsoft Visual Studio 2005 (or later). You can obtain .NET Framework SDK free of charge. For more information, see Installing the .NET Framework SDK.
Building the Sample
-
Before you build OleDb_TVP, you must execute the following Transact-SQL:
create database testdb go use testdb go create table tblEmployees ( id int identity primary key, name nvarchar(50) not null, birthday date null, salary int null, photograph varbinary(max) null ) go create type tvpEmployees as table( name nvarchar(50) not null, birthday date null, salary int null, photograph varbinary(max) null ) go create procedure insertEmployees @tvpEmployees tvpEmployees readonly, @id int output as insert tblEmployees(name, birthday, salary, photograph) select name, birthday, salary, photograph from @tvpEmployees select @id = coalesce(scope_identity(), -1) go
-
You must specify a server. In OleDb_TVP.cpp, change "MyServer" to the name of a computer that has an instance of SQL Server 2008.
-
Make sure your INCLUDE environment variable includes the directory that contains sqlncli.h.
-
If you are using Visual Studio, load the OleDb_TVP.sln file and build it.
-
If you are using MSBuild.exe, invoke MSBuild.exe at a command prompt. Pass in the OleDb_TVP.sln file, as follows:
MSBuild OleDb_TVP.sln
Running the Sample
-
From Visual Studio, invoke Start Without Debugging (CTRL+F5).
-
If you built with MSBuild.exe, invoke OleDb_TVP.exe.
Each time the sample is run, it displays the ID for the last row it added.