Frequent Asked Questions
- What is OleDBPro?
OleDBPro, a dynamic link library, is a thin but powerful OLEDB
(Object-Linking and Embedding DataBase) consumer with a set of templates
supporting the latest OLEDB version 2.7 specification of Microsoft Universal
Data Access (UDA) technology. It is a light software component (132K) for
fast and easy development of applications accessing all of your data
sources, including relational database management systems (DBMSs),
non-relational DBMSs, multidimensional Online Analytical Processing
Services (OLAPs), and XML query.
How can I use OleDBPro? What development
environment is required?
The required development environment is either Visual C++
(version 5 or later) or Borland C++Builder (version 5 or later). There is an instruction with
examples to tell you how to use the library. You can use the library
with MFC, ATL, VCL, and so on.
OleDBPro runs fast? How fast is OleDBPro? It is
comparable with ATL consumer templates in speed?
Yes, OleDBPro runs fast! OleDBPro is optimized for C++ development.
OleDBPro is designed for the best speed for both retrieving and updating
records with the batch mode by default.
A. In regards to
retrieving records, OleDBPro is always faster than
CBulkRowset with a dynamic accessor, and by default very close (usually
1-2% difference, always less than 3%) to
CBulkRowset with a WELL-DEFINED user accessor in ATL consumer templates under the same conditions.
OleDBPro can be configured with the same speed as
CBulkRowset with a WELL-DEFINED user accessor at run time by using CRBase::SetDBPart.
However, with use of OleDBPro unique
feature, OleDBPro is faster than ATL consumer templates.
B. In regards to updating
records, if updating records is made through a rowset, OleDBPro has the same
speed with ATL consumer templates. However, if using command with a
parameterized statement or stored procedure, by default OleDBPro is much
faster than ATL consumer templates because OleDBPro uses the batch mode to send
multiple sets of parameters into a server with a single call.
provides a number of ways to
improve data accessing speed. We would invite you to read through the
short article Why do you need to use OleDBPro
instead of ADO and ATL consumer templates? Additionally, please see what
benefits OleDBPro provides to you.
I know OLEDB is complicate. Is it easy to use
OleDBPro? Why is OleDBPro easy to use, and tell me reasons?
OLEDB is indeed complicate, but
OleDBPro is simple to learn and to use. It is designed by the following
A. A user never has to
deal with an accessor directly, no matter what the statement and resultant
rowset are. This reduces tons of OLEDB programming pitfalls and
B. OleDBPro dramatically
simplifies data type conversions, BLOBs managements and error message
managements, no matter how complicate a statement or a resultant rowset is. A
user will never meet this kind of problems.
C. OleDBPro wraps all the
tough interface methods of OLEDB.
D. OleDBPro provides
enough real examples covering all aspects of OLEDB consumer programming.
Most of examples are very generic, advanced and highly reusable. You can quickly
modify them for your development.
E. OleDBPro is carefully written to
avoid many OLEDB-related questions posted in various discussion groups.
OleDBPro wraps all the methods of all the OLEDB
interfaces? If not, is OleDBPro extensible?
OleDBPro doesn't encapsulate all
the methods of all the OLEDB interfaces available. However, OleDBPro indeed
wraps all the methods of OLEDB interfaces which are either common or tough
to be used with application developments. For a list of wrapped interfaces, click
OleDBPro is highly extensible.
You can subclass any one of OleDBPro classes or templates. You can also
overwrite a function. If a user does need a method which is not found
in OleDBPro, he or she can easily derive a new class from OleDBPro based on
an interface method, because all the tough methods or interfaces are already
included in OleDBPro and the rest methods of OLEDB interfaces are easy to
use and call. In case a user accidentally make an obvious programming error
when extending OleDBPro, OleDBPro is able to track it and inform the error
message to him or her.
Does OleDBPro support resource pooling?
Yes! See the attached example
Pooling which connects 3000 times to SQL Server, and Oracle with both ODBC
and native ORACLE Oracle OLEDB provider. It takes just about 3 seconds!
Is OleDBPro absolutely bug-free? Is OleDBPro
perfect? Is OleDBPro robust? What OLEDB providers were used to test OleDBPro
First of all, no software
component in the world can be claimed to be absolutely bug-free and perfect.
OleDBPro is no exception. However, we are trying our best to approach it. It
is dependent to us, and also to you. If you meet a problem, please let us known.
We think that your bug report or message is VERY VERY VERY precious to
We think OleDBPro is robust.
Currently, OleDBPro has been extensively tested on the following providers:
MS ODBC, MS Jets (3.5, 4.0 and
ISAM drivers), MS SQL Server, MS Internet Publishing, MS Client Cursor
Engine, MS Data Shaping Services, MS Remote, MS Persistence, MS Index, MS
Active Directory, MS Oracle, MS Simple, ORACLE Oracle, Sybase, and Advantage.
The known problems can be found
at this site.
Can I do mixing programming with use of
OleDBPro, ADO and ATL consumer templates in the same application?
Yes! No problem at all! If
you already use ADO or ATL consumer templates but need particular functions
available only from OleDBPro, you can easily attach an interface to an OLEDB
object with an OleDBPro object. Once an OleDBPro object is attached
(opened), you can use the object and its function to complete your
I know OLEDB is evolving fast. Can your
OleDBPro keep steps with the development of OLEDB.
No problem at all!
A debug version of OleDBPro dll is provided.
What is beneficial for application development?
It is recommended that you use the debug version of OleDBPro dll when
developing your applications. However, you should use the release version of
dll when you build your release versions of your applications. There are
many programming error checks inside the debug version of OleDBPro dll.
Whenever you accidentally make a coding error, it will prompt an error
message to inform you, and the error message tells you how to avoid the
problem. OleDBPro uses this way to further reduce the frustration of OLEDB
What difference between OleDBPro and ADOs?
Both OleDBPro and ADOs are consumers. ADOs are COM dlls but OleDBPro is a
standard dll. For comparison between the two, click
What difference between OleDBPro and ATL
Both OleDBPro and ATL consumer templates are consumers. For comparison
between the two, click here.
What difference between OleDBPro and Borland
For the comparison
between the two components, click here.
How can I get the technical support?
Send us your questions and
concerns to email@example.com.
I have a problem in compiling OleDBPro
examples, and how can I solve it?
is your answer!
Does OleDBPro support XML?
OleDBPro well supports XML query.
See the overview of the class COStream.
Beginning with the version 126.96.36.199, OleDBPro provides the XML feature of
flexible and friendly construction of XML
document at the client side from any rowset or OLAP dataset.
Questions about data sources
data source object.
Questions about OLEDB session object.
Questions about OLEDB command object.
Questions about OLEDB rowset/View/index object.
Questions about OLEDB other objects and error
Questions about various MS data