Technical Questions
 Crystal Reports Forum : Crystal Reports 9 through 2020 : Technical Questions
Message Icon Topic: Difference between Native and ODBC Connection Post Reply Post New Topic
Author Message
statey603
Groupie
Groupie
Avatar

Joined: 14 Aug 2013
Online Status: Offline
Posts: 78
Quote statey603 Replybullet Topic: Difference between Native and ODBC Connection
    Posted: 23 Aug 2013 at 4:02am
Can someone please explain the difference between Native and ODBC Connections?
 
A recent issue that I had calling a Stored Procedure that executes a database Update, required changing to the Native connection instead of the ODBC to get around a Read-Only Transaction error.
 
I was told to specify a native connection you must browse to Create New Connection via Std Rpt Creation Wizard, specify Oracle and then setup the Service, user, etc. 
 
Is there a way to save this (locally, repository, etc) so other report creators do not have to go through this process for each report they create?
 
I know it is not many steps, but to some it is confusing and they originally had wanted us to all just select from the ODBC connections in the My Connections section at the top of the Std Rpt Creation Wizard.
 
Perhaps I just do not understand the nature of native versus ODBC but it would be nice to be able to add native connection definitions to the list of available connections so they remain available.  Perhaps they are and I just don't know it. Our ODBC connections use the same name as the TNSNAMES 'service' so maybe that is why I am confused.
 
I appreciate any light that can be shed on native connections, etc. and/or references that can be provided.
 
Thanks,
Bill
 


Edited by statey603 - 23 Aug 2013 at 4:55am
-bill
IP IP Logged
Sastry
Moderator
Moderator
Avatar

Joined: 16 Jul 2012
Online Status: Offline
Posts: 537
Quote Sastry Replybullet Posted: 23 Aug 2013 at 5:32am
Hi

Go through the below link ;


http://jamesmccaffrey.wordpress.com/2006/05/02/odbc-vs-ole-db/
Thanks,
Sastry
IP IP Logged
statey603
Groupie
Groupie
Avatar

Joined: 14 Aug 2013
Online Status: Offline
Posts: 78
Quote statey603 Replybullet Posted: 23 Aug 2013 at 5:32am
I think I may have answered my own question. I deleted all of my ODBC connections via Ctrl Panel - Admin and then recreated them with different names [prefixed with ODBC_]. I then went into Crystal Rpts 2011 and opened the Std Rpt Creation Wiz and right clicked on each data source and deleted them all. Next, I opened one of my reports that uses a native connection and did a refresh. I closed that and then opened Std Rpt Creation Wiz and see the native connection in the available list. I think my superiors wil be able to live with this. There main objwective was predefining the data source connections and being able to pick from a list instead of create from scratch each time.
 
---------------------------------------------------------------------------
update:
One thing I just found is that my newly named ODBC data sources do not work. It looks like the ODBC data source name needs to match the 'service'. when I select ODBC_NHEASD, the ODBC(RDO) Connection Information dialog appears and the Service field is prefilled with ODBC_NHEASD. The connection 'service' name in TNSNAMES is NHEASD, so when I proceed - adding user and password, I receive the following error: Logon failed. Details: IM003: Specified driver could not be loaded due to system error 127 (Oracle...Vendor Code: 160)).
 
 
I am content using the native driver I set up. Hopefully I can convince my superiors to set up native connections and use them instead of ODBC to alleviate the confusion of using both types.
---------------------------------------------------------------------------
 
 
If I am mistaken or if anyone has comments, I am all ears.
 
Thanks,
Bill
 


Edited by statey603 - 23 Aug 2013 at 6:04am
-bill
IP IP Logged
statey603
Groupie
Groupie
Avatar

Joined: 14 Aug 2013
Online Status: Offline
Posts: 78
Quote statey603 Replybullet Posted: 23 Aug 2013 at 5:39am
Hi Sastry,
 
Thank you for the reply and link. For some reason, wordpress is on the blocked site least here so I cannot get there. I will have to check this from home.
 
Thanks,
Bill
-bill
IP IP Logged
Sastry
Moderator
Moderator
Avatar

Joined: 16 Jul 2012
Online Status: Offline
Posts: 537
Quote Sastry Replybullet Posted: 23 Aug 2013 at 6:00am
Hi

check this

A frequent question I get from new software test engineers is, "What is the difference between ODBC and OLE DB?" Both are specifications which describe how an application program can access the data in a data store. ODBC stands for Open Database Connectivity. The ODBC call-level interface specification was created by Microsoft in 1992 as a way to standardize program-to-SQL data communication. Before ODBC, application programmers had to use a different set of API calls for every type of database. By creating a standard interface, programmers could write one set of code (for the most part) that would work with any ODBC-compliant database. ODBC was quickly embraced by most major database vendors and became a de facto standard. Notice that this cooperation happened when Microsoft was not a very large company.

OLE DB originally stood for Object Linking and Embedding for Databases, but now the acronym just means a COM-based interface to a wide range of data sources. OLE DB is sometimes written as OLEDB or OLE-DB. OLE DB came into being in the mid 1990s through an evolution and merging of several Microsoft technologies. The idea of OLE DB is to provide programmers with a consistent interface to many different types of data, including SQL databases, Excel spreadsheets, and so on.

The best way to understand the relationship between ODBC and OLE DB is by way of a picture. (Click on the image at the bottom of this blog entry to enlarge it so you can see it clearly). Imagine that you are a developer or tester writing a program which needs to access and manipulate some data. If the data is stored in a SQL relational database, use can use ODBC calls. It turns out that working directly with ODBC is a bit awkward. An alternative is to use OLE DB. OLE DB programming tends to be quite a bit easier than ODBC programming, in part because OLE DB operates at a higher level of abstraction. The downside of OLE DB is a slight performance penalty in most cases. Now if you want to get at Excel data, you can also use OLE DB calls to access and manipulate the data. Of course I’ve left out a lot of details, but this overview should help you understand the difference between ODBC and OLE DB.
Thanks,
Sastry
IP IP Logged
Post Reply Post New Topic
Printable version Printable version

Forum Jump
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot delete your posts in this forum
You cannot edit your posts in this forum
You cannot create polls in this forum
You cannot vote in polls in this forum



This page was generated in 0.031 seconds.