
 | |
- 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.8
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).
- Does OleDBPro
support 64bit and devices development thorough OLEDB?
Yes! Beginning from version
2.5.0.01, OleDBPro fully supports 64bit and devices development.
- 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 both retrieving and updating records with the batch mode
at the fastest speed 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.
C. OleDBPro provides numerous
ways to improve data accessing speed.
- 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
guide lines:
A. You will never deal with an accessor directly, no matter what the statement and resultant
rowset are. This kills most of OLEDB programming pitfalls and tricks.
B. OleDBPro dramatically
simplifies data type conversions, BLOBs managements and error message
managements, no matter how complicate a statement or a resultant rowset is.
You will never meet this kind of problems.
C. OleDBPro wraps all the
tough interface methods of OLEDB.
D. OleDBPro provides 30 samples 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.
- Can I
directly compile OleDBPro into my code?
Yes if you purchase a copy of
OleDBPro source code. See the define DONT_NEED_OLEDBPRO_DLL in the header
file oledbbas.h.
- 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.
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 less than 1 second!
- Is OleDBPro absolutely bug-free? Is OleDBPro perfect? Is OleDBPro
robust? What OLEDB providers were used to test OleDBPro module?
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 us.
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, MS FoxPro, Pervasive, SQLBase,
IBProvider for Interbase, ORACLE Oracle, Sybase, and
Advantage.
- 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 interface object is attached
(opened) with an OleDBPro object, you can use the object and its function to complete your work.
- Does OleDBPro
support DBTYPE_XML data type and various XML queries with MS SQL Server
native client OLEDB provider?
Beginning OleDBPro version
2.0.0.1, OleDBPro supports DBTYPE_XML data type and treats it like
DBTYPE_WSTR. Because MS native client OLEDB provider always maps a
DBTYPE_XML into a long text string, OleDBPro thinks a DBTYPE_XML as a BLOB.
Here is a code snippet to show you how to retrieve such a data type.
ULONG ulLen = BulkRecord.GetLength(nCol);
//for
DBTYPE_XML, length may be not available, unlike other BLOBs or texts
if(ulLen ==
LENGTH_NOT_AVAILABLE)
{
CComPtr<ISequentialStream> pISequentialStream;
BulkRecord.GetDataEx(nCol, &pISequentialStream, DBTYPE_IUNKNOWN);
WCHAR strData[10240] = {0};
do
{
ULONG ulGet;
pISequentialStream->Read(strData, sizeof(strData),
&ulGet);
//keep eyes on the first two bytes, 0xFEFF
//do some your work here
if(ulGet == 0)
break;
} while(true);
}
else
{
WCHAR *strData = new
WCHAR[ulLen/sizeof(WCHAR)
+ 1];
strData[ulLen/ sizeof(WCHAR)]
= 0;
BulkRecord.GetDataEx(nCol, strData, DBTYPE_WSTR, ulLen + sizeof(WCHAR));
//do some your work here
delete []strData;
}
OleDBPro has supported various XML queries from the version 1.2.
- Can I use OleDBPro
with MS visual studio 5 and 6?
Yes, you can. However, you need
to use MS platform SDK no earlier than 2001 because these old development
tools are released much earlier than many OLEDB version 2.5 or later raw
interfaces are defined. Without use of MS platform SDK, you will certainly
meet compiling problems. Your visual C++ directory of include files should
be like:
C:\PROGRAM FILES\MICROSOFT SDK\INCLUDE
C:\VC98\INCLUDE
C:\VC98\MFC\INCLUDE
C:\VC98\ATL\INCLUDE
For visual C++ 2002 or later, this is not required.
- Can I use OleDBPro
with Visual C++ 2005 express?
Yes! You can use OleDBPro with Visual C++ 2005 express with help
of MS platform SDK.
- 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 programming.
- Does UDAParts provides docs with OleDBPro?
Yes! You can download docs with
OleDBPro. More FAQs are available from OleDBPro docs. Goto Download
page now!
- How can I get the technical support?
Discussion
groups or email at support@udaparts.com.
|