SourcePro® DB

Rogue Wave SourcePro DB provides a complete solution for relational database access in C++.  

SourcePro DB has an object-oriented interface that abstracts away the complexity of writing database applications, yet allows developers to drill down to the native database client libraries if needed. SourcePro DB encapsulates ANSI SQL 92 and supplies a consistent, high-level C++ interface to relational databases, speeding development, and reducing complexity. 

SourcePro DB offers a layered architecture consisting of the database-independent Interface Module and a variety of database-specific Access Modules. This architecture allows developers to write programs that are reusable with the same or different types of databases, freeing developers from having to understand many of the details associated with a particular database vendor’s API. SourcePro DB provides direct access to Oracle, Sybase, DB2, Microsoft SQL Server, MySQL and PostgreSQL.

SourcePro DB offers significant benefits for developers working with a single database or multiple databases. SourcePro DB lets developers write reusable programs for multiple databases with less effort than using a vendor API to write an application for a single database. SourcePro DB shortens the developer learning curve by encapsulating each database vendor’s API; developers need to learn only a single interface since SourcePro DB provides a consistent object-oriented API across all supported vendor databases. 

In an application that needs to access data from only a single database, developers can code to the database-independent SourcePro DB API for simplicity. Developers also have the flexibility to create an application that will work with virtually any back-end database if project requirements change in the future. 

The object-oriented encapsulation of relational database concepts eliminates the need to generate SQL programmatically, while the intuitive C++ interface makes coding database applications much less error-prone. Plus, SourcePro DB’s cross-platform interface remains consistent even when database vendors change their APIs. 

SourcePro DB’s OpenSQL API helps developers maximize performance on a specific database by providing lower-level access via a statement-based architecture, allowing developers to create their own SQL, bind the variables to the statement, and execute the statement. Overhead is minimized and the developer has direct access to native data types. In addition, SourcePro DB provides direct access to native structures and functions, allowing database-specific implementation choices to be made, if the need arises. 

To further maximize performance, customers whose database schemas don’t change frequently can activate schema caching in SourcePro DB. Turning on schema caching allows SourcePro DB to make assumptions about certain activities, which will be correct only if the schemas do not change. This caching improves application performance since the application doesn’t have to obtain result set schema information each time a query is re-executed. 

SourcePro DB XA is an optional add-on to SourcePro DB (available through Consulting Services), designed for applications that need to interface with a Transaction Processing Monitor (TPM). SourcePro DB XA facilitates communication between the middle-tier application server and a resource manager in a distributed transaction-processing environment . 

With SourcePro DB XA and a TPM, developers can support distributed transactions across multiple, heterogeneous databases from a common interface, while ensuring data integrity. By offering a single programming interface to leading databases and TPMs, SourcePro DB XA allows developers to create applications with the critical feature of recoverability and helps them build a cross-platform, XA-compliant distributed application.

SourcePro DB Features

Features Benefits
Consistent, object-oriented programming interface to multiple back-end databases Encapsulates leading relational database vendors' APIs and is universal for all applications regardless of which database is used.Frees developers from dealing with the low-level details of a particular database vendor's API, allowing them to concentrate on domain-specific issues and build appropriate data models.Allows developers to write programs that are reusable with many different types of relational databases.Allows developers to drill down to the native database APIs for added control when needed.Be freed from having to generate SQL programmatically.
C++ classes that encapsulate SQL 92 Data Manipulation Language (DML) and Data Definition Language (DDL) constructs Quickly learn to code multi-database applications because only one API must be learned.Higher-level abstractions allow for shorter, cleaner applications and facilitate code reuse.
Open SQL interface Take advantage of database-specific features to maximize performance.Gain tight control over statements and their binding and execution semantics.
Optional schema caching Improves performance in situations where database schemas do not change often.
"Native" Access Modules for Oracle, Sybase, Microsoft SQL Server, MySQL Server, PostgreSQL Server, DB2, and ODBC Provides native, high-performance implementations for supported vendor databases.Port to other databases with minimal code changes.