what is the difference between ODBC and OleDB?

  • Hi Friends

    what is the difference between ODBC and OleDB?

  • ODBC-it is designed for connecting to relational databases.

    However, OLE DB can access relational databases as well as nonrelational databases.

    There is data in your mail servers, directory services, spreadsheets, and text files. OLE DB allows SQL Server to link to these nonrelational database systems. For instance, if you want to query, through SQL Server, the Active Directory on the domain controller, you couldn't do this with ODBC, because it's not a relational database. However, you could use an OLE DB provider to accomplish that.

    In summary, The key difference between OLE DB and ODBC is that OLE DB can provide connection to data stored in non-relational format.

    🙂

  • Good explanation. OLEDB is newer and superceeds ODBC. You should aim to use OLEDB connections where possible. I believe there's an OLEDB provider that encapsulates all ODBC functionality.

  • Though, this discussion had been an old discussion, I just want to add the information I got regarding OLD DB drivers. As per the below article, Microsoft is planning to depreciate OLEDB APIs and SQL Server 2012 will be the last version to support OLEDB. Therefore, it is highly recommended for programmers to write their codes with ODBC compatibility than OLEDB.

    http://www.itwriting.com/blog/4825-full-circle-for-microsoft-database-apis-as-ole-db-for-sql-server-is-deprecated.html

  • Steve Jones - SSC Editor (7/28/2008)


    Good explanation. OLEDB is newer and superceeds ODBC. You should aim to use OLEDB connections where possible. I believe there's an OLEDB provider that encapsulates all ODBC functionality.

    Steve, I think this may not be the best advice.

    Looks to me as though OLEDB is being deprecated. Here's another link which discusses the topic.

    The absence of evidence is not evidence of absence
    - Martin Rees
    The absence of consumable DDL, sample data and desired results is, however, evidence of the absence of my response
    - Phil Parkin

  • Phil Parkin (10/9/2012)


    Steve Jones - SSC Editor (7/28/2008)


    Good explanation. OLEDB is newer and superceeds ODBC. You should aim to use OLEDB connections where possible. I believe there's an OLEDB provider that encapsulates all ODBC functionality.

    Steve, I think this may not be the best advice.

    Looks to me as though OLEDB is being deprecated. Here's another link which discusses the topic.

    That was actually interesting link to read. Especially the part about

    Microsoft has been supporting ODBC through all the releases of SQL Server for relational data access. This includes adding new functionality to the ODBC drivers whenever a corresponding feature is added to SQL Server.

    I've developed an application few years ago, which needed to receive and display in GUI long stored procedure progress. Progress messages were implemented in stored proc using RAISERROR (of message severity) WITH NOWAIT which allows receiving such messages asynchronously by the client. It is possible using ADO InfoMessage handling. But, I only managed to get it working properly using ODBC driver! All other drivers, for some reason, would get all InfoMessage events accumulated and raised at once on the end of process. I was really surprised that time why "old" ODBC driver did work but newest SQL Server Native Client didn't...

    Looks like MS always treated ODBC as the most up-to-date driver.

    _____________________________________________
    "The only true wisdom is in knowing you know nothing"
    "O skol'ko nam otkrytiy chudnyh prevnosit microsofta duh!":-D
    (So many miracle inventions provided by MS to us...)

    How to post your question to get the best and quick help[/url]

Viewing 6 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply