I want to switch my apllication from ODBC to OCI. I use MS VC++ 6.
Are there tips how to do it in a quick way? (Automatic conversation???)
What's about the performance?
Regards,
Michael
I don't believe there's any quick way to do this. It will probably be
a rather hefty task to convert everyting (assuming a reasonably
complex application).
The Oracle 9i version of OCI adds some higher-level functionality to
OCI, like connection pooling, that you're probably relying on in ODBC.
It may have cursor support as well, I'm not sure. Oracle 9i also
includes a C++ API in addition to the old C API. As a result, if you
can restrict yourself to developing for 9i, I think you're going to be
better off.
Performance may or may not be significantly better in OCI. It's
certainly possible to write OCI that's faster than the OCI an ODBC
driver would produce. Of course, it's also possible to write OCI code
that's slower than the driver's OCI. A lot depends on how efficiently
you're using the two API's. If you have the time to learn OCI well &
to optimize your code, you'll be faster than ODBC.
I would suggest that your first step ought to be implementing your
current app's most costly operation(s) in OCI so you can get a
benchmark of the speed improvement you're getting. If you haven't
already, I'd strongly recomment getting one of the performance
profiling utilities like NuMega's TrueTime to get an idea about where
your performance bottlenecks are.
Justin Cave
You can try to use any free or commercial OCI wrapper.
Like this: http://www.geocities.com/skuchin/otl/home.htm
Or like this: http://www.roguewave.com/products/sourcepro/db/
If you are an ODBC guru, it will be not difficult for you to switch to OCI,
because a main difference between ODBC and OCI is a function preffics
(SQL or OCI). But if you are a JDBC guru, try to use a new OCCI library
fron version 9. It is designed on the same way.
Like in ODBC, I suggest to use array interfaces. It is much faster.
Sergey Sikorsky