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 !


Who is Participating?
It is absolutely possible to have a VC++ developed program to acess the Oracle datadbase?

Well How?

1)make a DSN ( data sourse name using
Oracle ODBC driver) from the control pannel.

2)then ,assuming that you have ready the tables that you want to acess in the database,

3)start the application wizard,

step1-->choose single document
step2-->database view with out file support
click the datasourse button

select your DSN (that you created)

enter username, password, service,

select your table

when the form view appears
add edit boxes and
press CTRL+double click

Map to corresponding table column fields

well the application is ready

But to write flexible applications read CDatabase and CRecordSet Classes from the MSDN and there are sample codes as well.

I can help you if you need more help.
My email address is



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

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.
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

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.

ODBC (and CDatabase and Crecordset) has very performance on Oracle databases
I found out that OCI has the best performance for quering.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.