Using native DBMS API requires including the appropriate DBMS API header file (comes with SQLAPI++). Native DBMS methods are accessible just after SQLAPI++ database connection is initialized.

Example below illustrates usage of native API by showing how to create Firebird database with SQLAPI++ using native Firebird isc_dsql_execute_immediate call:

#include <SQLAPI.h>
#include <ibAPI.h>

int main(int argc, char **argv)
{
    SAConnection con;
    con.setClient(SA_InterBase_Client);
    ibAPI *pibAPI = (ibAPI *)con.NativeAPI();

    ISC_STATUS status_vector[20];
    isc_db_handle db_handle = NULL;
    isc_tr_handle dummy_handle = NULL;

    pibAPI->isc_dsql_execute_immediate(
        status_vector,
        &db_handle,
        &dummy_handle,
        0,
        "create database 'localhost:c:/test.gdb' user 'SYSDBA' password 'masterkey'",
        1,
        NULL);
    if (status_vector[0] == 1 && status_vector[1])
    {
        /* Process error */
        pibAPI->isc_print_status(status_vector);
        return 1;
    }

    return 0;
}
native_api.cpp
Need Help?
Send an e-mail to support@sqlapi.com if you want to ask code-level questions, if you’re stuck with a specific error or need advise on the library best practices.