Database Programming ATL

How to use ATL OLE/DB code with an ADO connection

.

Environment: VC++ 6, Windows 2000

This article is for Visual C++ -- OLE/DB programmers that are using ATL but must interact with components or code (from VB or even Visual C++) using ADO. Some time ago was really a problem for me to use such components without changing my code that was using ATL OLE/DB style for accessing a database.

The key code is where the ADO.s Connection is used to get a CSession:

.  .  .

GUID
IID_ACC={0x00000516,0x0000,0x0010,0x80,0x00,
         0x00,0xAA,0x00,0x6D,0x2E,0xA4};
   HRESULT hr;

   try
   {

      if(!m_pADOconnection->CreateDispatch(
         _T("ADODB.Connection"), e))
             throw e;

      CString strConnection;
      strConnection.Format("Provider=Microsoft.Jet.OLEDB.4.0;
                           DataSource=db.mdb;");

      m_pADOconnection->Open(strConnection,"admin","", 0);

      propd=m_pADOconnection->m_lpDispatch;
      hr=propd->QueryInterface(IID_ACC,(void**)&pUnk);
      if(FAILED(hr)) return hr;
      hr=((ADOConnectionConstruction15*)pUnk)->
                      get_Session(&pSession);
      if(FAILED(hr)) return hr;

      hr=pSession->QueryInterface( IID_IOpenRowset,
                                   (void**)&pOpenRowset);
      if(FAILED(hr)) return hr;
      m_pSession->m_spOpenRowset.Attach(
                           (IOpenRowset*)pOpenRowset);
   }
   catch(...)

   . . .

Downloads

Download source - 35 Kb


Comments

  • How to query.

    Posted by Legacy on 04/10/2003 12:00am

    Originally posted by: csjung

    How can i insert data and query using this code?
    eg) Inset Into mlist VALUES(~~~)
    : to insert data.
    Select * from mlist where FirstName = 'name1'
    : to query record.

    Thanks in advance.
    Jung.

    Reply
  • how to use SQL Server for this example?

    Posted by Legacy on 12/21/2001 12:00am

    Originally posted by: James


    Thanks, I have a SQL Server DB in another computer,
    its Data Source name is: DBTest

    how can I connect to it with your sample?

    James

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • The first phase of API management was about realizing the business value of APIs. This next wave of API management enables the hyper-connected enterprise to drive and scale their businesses as API models become more complex and sophisticated. Today, real world product launches begin with an API program and strategy in mind. This API-first approach to development will only continue to increase, driven by an increasingly interconnected web of devices, organizations, and people. To support this rapid growth, …

  • Packaged application development teams frequently operate with limited testing environments due to time and labor constraints. By virtualizing the entire application stack, packaged application development teams can deliver business results faster, at higher quality, and with lower risk.

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds