Home Products Download Events Support Registration

Home
Up
  • 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.