Home How To Online Documentation Support Download Order

 

 

 

SACommand
SAConnection
SAException
SAField
SAParam

SAString
SADateTime
SANumeric

Enums and Typedefs

  

Usage

Class Members

Examples

SAConnection::NativeHandles

saConnectionHandles *NativeHandles();

Returns a set of connection related handles of native DBMS client API. 

Return value

A pointer to a base class saConnectionHandles from which a family of DBMS implementation-specific classes are derived.

Remarks

You have to use native API handles when you want to call DBMS specific API functions which are not directly supported by the Library. API functions usually need to receive one or more active handles as a parameter(s). NativeHandles method returns a pointer to the set of native API connection related handles. To use API handles directly you have to downcast saConnectionHandles pointer to the appropriate type and use its implementation-specific members. If you need to use command related handles see SACommand::NativeHandles method.

See DBMS specific notes section to know what type cast you have to make and what additional header file you have to include to work with specific DBMS client API. Note that for some DBMS using appropriate type casting depends on an API version (that generally mean that you have to explicitly check client version before casting, see ClientVersion method).

To get more information about DBMS API functions and handles see this DBMS specific documentation. 

Please be aware of the complications associated with making direct API calls, as the internal logic of the SQLAPI++ Library is not used. Besides, making direct API calls reduces an application's portability.

DBMS specific notes

DBMS client

Type casting

Oracle 8 (OCI8)

Cast the result to class ora8ConnectionHandles:

#include <oraAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
ora8ConnectionHandles *p_ora8CH =
                                (ora8ConnectionHandles *)pResult;

Available handles:

  • OCIEnv *m_pOCIEnv;
  • OCIError *m_pOCIError;
  • OCISvcCtx *m_pOCISvcCtx;
  • OCIServer *m_pOCIServer;
  • OCISession *m_pOCISession;

Oracle 7 (OCI7)

Cast the result to class ora7ConnectionHandles:

#include <ora7API.h>

saConnectionHandles *pResult = con.NativeHandles();
ora7ConnectionHandles *p_ora7CH =
                                (ora7ConnectionHandles *)pResult;

Available handles:

  • Lda_Def  m_lda; 
  • ub1  m_hda[512];

SQL Server (OLE DB)

Cast the result to class ssOleDbConnectionHandles:

#include <ssOleDbAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
ssOleDbConnectionHandles *p_ssOleDbCH =
                                (ssOleDbConnectionHandles *)pResult;

Available handles:

  • IDBInitialize *pIDBInitialize;
  • IDBCreateCommand *pIDBCreateCommand;
  • ITransactionLocal *pITransactionLocal;

SQL Server (DB-Library)

Cast the result to class ssConnectionHandles:

#include <ss6API.h>

saConnectionHandles *pResult = con.NativeHandles();
ssConnectionHandles *p_ssCH =
                                (ssConnectionHandles *)pResult;

Available handles:

  • PDBPROCESS m_dbproc;
Sybase

Cast the result to class sybConnectionHandles:

#include <sybAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
sybConnectionHandles *p_ssCH =
                                (sybConnectionHandles *)pResult;

Available handles:

  • CS_CONNECTION *m_connection;

DB2

Cast the result to class db2ConnectionHandles:

#include <db2API.h>

saConnectionHandles *pResult = con.NativeHandles();
db2ConnectionHandles *p_ssCH =
                                (db2ConnectionHandles *)pResult;

Available handles:

  • SQLHENV m_hevn;
  • SQLHDBC m_hdbc;

Informix

Cast the result to class infConnectionHandles:

#include <infAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
infConnectionHandles *p_ssCH =
                                (infConnectionHandles *)pResult;

Available handles:

  • SQLHENV m_hevn;
  • SQLHDBC m_hdbc;

InterBase

Cast the result to class ibConnectionHandles:

#include <ibAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
ibConnectionHandles *p_ibCH =
                               (ibConnectionHandles *)pResult;

Available handles:

  • isc_db_handle m_db_handle;
  • isc_tr_handle m_tr_handle;

SQLBase 6

Cast the result to class sb6ConnectionHandles:

#include <sbAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
sb6ConnectionHandles *p_sb6CH =
                               (sb6ConnectionHandles *)pResult;

Available handles:

  • SQLTCUR m_cur;

SQLBase 7

Cast the result to class sb7ConnectionHandles:

#include <sbAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
sb7ConnectionHandles *p_sb7CH =
                               (sb7ConnectionHandles *)pResult;

Available handles:

  • SQLTCUR m_cur;
  • SQLTCON m_hCon;

MySQL

Cast the result to class myConnectionHandles:

#include <myAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
myConnectionHandles *p_myCH =
                               (myConnectionHandles *)pResult;

Available handles:

  • MYSQL *mysql ;

PostgreSQL

Cast the result to class pgConnectionHandles:

#include <pgAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
pgConnectionHandles *p_pgCH =
                               (pgConnectionHandles *)pResult;

Available handles:

  • PGconn *conn ;

ODBC

Cast the result to class odbcConnectionHandles:

#include <odbcAPI.h>

saConnectionHandles *pResult = con.NativeHandles();
odbcConnectionHandles *p_odbcCH =
                               (odbcConnectionHandles *)pResult;

Available handles:

  • SQLHENV m_hevn;
  • SQLHDBC m_hdbc;

See also

SAConnection::ClientVersion, SAConnection::NativeAPI, SACommand::NativeHandles

Problems and Questions

If you haven't found the answer to your questions or have some problems on using the Library, please, send e-mail to howto@sqlapi.com.