Article ID: 198485
Article Last Modified on 1/9/2006
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog' SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')The SELECT statement performs the SQL statement against the OLE DB Provider.
#include <iostream>
using namespace std ;
#include <atlbase.h>
#include <atlimpl.cpp> // obsolete in versions later than 6.0
CComModule _Module;
#define DBINITCONSTANTS
#include <atlcom.h>
#include <atldbcli.h>
#include <msdaguid.h>
//Accessor Class
class CProductsAccessor
{
public:
LONG m_ProductID;
TCHAR m_ProductName[41];
//output binding map
BEGIN_COLUMN_MAP(CProductsAccessor)
COLUMN_ENTRY(1, m_ProductID)
COLUMN_ENTRY(2, m_ProductName)
END_COLUMN_MAP()
};
void main()
{
HRESULT hr ;
//Initialize COM
hr = CoInitialize(NULL);
CDataSource connection ;
CSession session ;
CCommand<CAccessor<CProductsAccessor> > product ;
// Open connection and session
// ===================================================
// Setting OLE DB Initialization Properties
// ===================================================
CDBPropSet propset(DBPROPSET_DBINIT);
propset.AddProperty(DBPROP_INIT_DATASOURCE, L"<SQL Server Name>");
propset.AddProperty(DBPROP_INIT_CATALOG, L"NorthWind");
propset.AddProperty(DBPROP_AUTH_USERID, L"<User ID>");
propset.AddProperty(DBPROP_AUTH_PASSWORD, L"<Password>");
hr = connection.Open("SQLOLEDB", &propset);
// Open a session.
hr = session.Open(connection) ;
// Perform a distributed join using OpenRowset T-SQL function.
//Note the drive C:\ referenced in the query resides on the server.
hr = product.Open(session, "select P1.ProductID, P1.ProductName
from NorthWind..Products P1,
OpenRowset('Microsoft.Jet.OLEDB.4.0','<nwind.mdb path>';
'<User ID>';'<Password>', 'select ProductID, ProductName from products
where UnitsInStock between 1 and 5')P2
where P1.ProductID = P2.ProductID order by P1.ProductName");
//Get data from the rowset.
while(product.MoveNext() == S_OK)
{
cout << product.m_ProductID << " ";
cout << product.m_ProductName << endl ;
}
}190959 OLE DB Consumer Template Wizard requires ATL project
Keywords: kbhowto kbdatabase kbdtl KB198485