Portability
SQLAPI++ is a C++ library that provides unified API to access different SQL databases.
By encapsulating vendor APIs, SQLAPI++ library acts as middleware and delivers database portability.
Easy to Use, Easy to Deploy
Using the library saves you time and effort by taking away the complexity of native C APIs provided by database clients.
No need to install and configure OLEDB and/or ODBC drivers when developing and distributing your applications.
Extensibility and Support
The library provides a low-level interface to access database-specific features should that become necessary.
Library supports database connectivity on Windows, Linux/Unix and MacOS.
SQLAPI++ ships with all the sources.
We provide free ongoing email support, one year of bug fixing and new version updates.
Connect to Database
Just make a call to SAConnection::Connect and provide the credentials. SQLAPI++ does the rest by dynamically loading specified client's native library and calling corresponding APIs.
SAConnection con;
con.Connect(_TSA("demo"), _TSA("guest"), _TSA("secret"), SA_SQLServer_Client);
Insert Data into a Table
To insert data create SACommand, bind input variables as needed using stream operators and call SACommand::Execute to send command to the server. SQLAPI++ takes care of preparing and executing the command using native APIs when needed.
SACommand insert(&con, _TSA("INSERT INTO EMPLOYEES (NAME, AGE) VALUES (:1, :2)"));
insert << _TSA("Tom Patt") << 30;
insert.Execute();
insert << _TSA("Nick Barry") << 35;
insert.Execute();
Read Data from a Table
To read data execute a SELECT command, bind WHERE clause variables as needed and use SACommand::FetchNext in a loop to retrieve all the rows. SQLAPI++ does the hard work of interfacing with native APIs, allocating buffers, etc.
SACommand select(&con, _TSA("SELECT NAME, AGE FROM EMPLOYEES WHERE AGE > :1"));
select << 30;
select.Execute();
while(select.FetchNext()) {
SAString sName = select[1].asString();
long nAge = select[2].asLong();
printf("Name: %s, age: %d \n", sName, nAge);
}
More Examples
Example 1. | Connecting to database (and error handling) |
Example 2. | Executing a simple SQL command |
Example 3. | Binding input parameters |
Example 4. | Executing a select query (and fetching result set) |
Example 5. | Binding LongBinary, LongChar, BLob and CLob data |
Example 6. | Fetching LongBinary, LongChar, BLob and CLob data |
Example 7. | Multi-threading support and canceling queries |
Example 8. | Fetching records in bulk |
Example 9. | Using Oracle REF CURSORs |
Example 10. | Using Oracle nested cursors |
Compatibility
SQLAPI++ library supports the following C/C++ compilers:
- Microsoft Visual C++
- Embarcadero (Borland) C++
- GNU GCC C++ compiler
- Solaris Studio C++ compiler
Latest Release
Bug Fixes
- General: Fixed default buffer size used for the long/LOB data writing (thanks Filippo Capizzi)
See full history...