Link to home
Start Free TrialLog in
Avatar of tybe
tybe

asked on

Visual C++ and Database

Hello Gurus,

Is it possible to access Oracle database from an application writen in Visual C++. If yes , how can I do it? I would  like to receive code semples if possible !

Thankx,

Indy
Avatar of Deckmeister
Deckmeister

Hi,

I know it is possible to access Oracle databases from an application written in Visual C++.

In order to do that, you have to use the Microsoft Visual Database Tools (new in VC6).

To have more infos, take a look at http://msdn.microsoft.com/library/devprods/vs6/vstudio/vdbref/dvovrnewfeatures.htm

Sorry, but I've never accessed an OracleDB from VC, so I can't help you much more.
I think you have to use OCI (Oracle call interface). For sure only if you want to use the native drivers. The alternative way is to use ODBC, for that you can use ADO for example.
MichaelS>
In order to use ODBC, you have to "register" the database under the windows Control Panel.
Is it possible with Oracle DB?

Moreover, ODBC isn't the best way to access to databases, because of its limited functions.
If you application is going to work ONLY with Oracle and you are sure you will never change to another database engine, then the OCI is the fastest and most efficient way of accessing Oracle.  THe drawback is that it works only with Oracle.

ODBC is obsolete and should not be used in new designs unless there is no support for DAO.

DAO (Data Access Objects) is the Microsoft recommended database neutral method of interfacing a Windows program (VC++, VB, whatever) to an underlying database engine.  The drawbacks are slower performance than the native interface, need for additional setup/configuration.  In return for this you get greater independence from the database itself.

There are many references available (both online and printed) in building DAO.  MFC support DAO via its CDaoDatabase class.  ODBC is support via the CDatabase class.
By the way, there are a couple of DAO sample projects using CDaoDatabase in the SDK.  See the DAOTABLE and the DAOVIEW sample applications.

The Oracle SDK (comes with Oracle) has samples on their native OCI interface.
Actually, as I know, Microsoft recomends to use ADO, not DAO.
You cannot use DAO because it uses the MS Jet Engine (the engine of MS Access).
And Jet isn't supported by Oracle.
Another solution
Oracle Ole Objects which are simple in use and internally use OCI calls - the fastest way to access Oracle databases

Also you can use Oracle's MFC objects
All mentioned sources come with Oracle install.

There you can find samples for OO4O and OMFC. Look in the corresponding directories.


ASKER CERTIFIED SOLUTION
Avatar of ghimireniraj
ghimireniraj

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
ODBC (and CDatabase and Crecordset) has very performance on Oracle databases
I found out that OCI has the best performance for quering.