• Topic
  • Discussion
  • UdaWikiWeb.OLEDBInvocation(Last) -- Owiki? , 2016-08-19 15:00:37 Edit owiki 2016-08-19 15:00:37

    Invoking the OpenLink Provider

    The OpenLink ODBC Provider (oploleod.dll) can be loaded using a variety of methods, depending on your programming environment.

    Using CoCreateInstance

    If you are writing an application which calls the OLE DB API directly, a consumer typically creates a provider's Data Source object by passing the provider's class identifier (CLSID) to the COM CoCreateInstance function and requesting the IDBInitialize interface. Every OLE DB provider declares a unique CLSID for itself. The CLSIDs for the OpenLink ODBC Provider, the OpenLink Error Lookup Service and the OpenLink ODBC Data Source Enumerator are given in the example below, which declares macros for each of the class identifiers.

    #ifdef DBINITCONSTANTS
    // Provider CLSID
    EXTERN_C const CLSID CLSID_OPLOLEDB =
      {0X2D93A18D, 0XAC86, 0X11D1, {0X9C, 0XEA, 0XE5, 0X2A, 0X53, 0XBE, 0XA0, 0X7D}};
    // OpenLink Error Lookup Service CLSID
    EXTERN_C const CLSID CLSID_OPLOLEDB_ERROR =
      {0X2D93A18E, 0XAC86, 0X11D1, {0X9C, 0XEA, 0XE5, 0X2A, 0X53, 0XBE, 0XA0, 0X7D}};
    // OpenLink ODBC Data Source Enumerator CLSID
    EXTERN_C const CLSID CLSID_OPLOLEDB_ENUM =
      {0X2D93A190, 0XAC86, 0X11D1, {0X9C, 0XEA, 0XE5, 0X2A, 0X53, 0XBE, 0XA0, 0X7D}};
    #else //DBINITCONSTANTS
    EXTERN_C const CLSID CLSID_OPLOLEDB;
    EXTERN_C const CLSID CLSID_OPLOLEDB_ERROR;
    EXTERN_C const CLSID CLSID_OPLOLEDB_ENUM;
    #endif //DBINITCONSTANTS
    IDBInitialize * pIDBInitialize;
    HRESULT hr;
    hr = CoCreateInstance(CLSID_OPLOLEDB, NULL, CLSCTX_INPROC_SERVER,
          IID_IDBInitialize, (void**) &pIDBInitialize);
    if (FAILED(hr))
    {
       // Display error
    ...
    }
    


    Referenced by...