The following example connects to two data sources using a SQL_ATTR_CONNECTTYPE set to SQL_COORDINATED_TRANS and SQL_ATTR_SYNC_POINT set to SQL_ONEPHASE.
/* From CLI sample duowcon.c */
/* ... */
/* main */
int main( int argc, char * argv[] ) {
SQLHANDLE henv, hdbc[MAX_CONNECTIONS] ;
SQLRETURN rc ;
/* ... */
/* allocate an environment handle */
SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv ) ;
/*
Before allocating any connection handles, set Environment wide
Connect Options
Set to Connect Type 2, Syncpoint 1
*/
if ( SQLSetEnvAttr( henv,
SQL_CONNECTTYPE,
( SQLPOINTER ) SQL_COORDINATED_TRANS,
0
) != SQL_SUCCESS ) {
printf( ">---ERROR while setting Connect Type 2 -------------\n" ) ;
return( SQL_ERROR ) ;
}
/* ... */
if ( SQLSetEnvAttr( henv,
SQL_SYNC_POINT,
( SQLPOINTER ) SQL_ONEPHASE,
0
) != SQL_SUCCESS ) {
printf( ">---ERROR while setting Syncpoint One Phase -------------\n" ) ;
return( SQL_ERROR ) ;
}
/* ... */
/* Connect to first data source */
prompted_connect( henv, &hdbc[0] ) ;
/* Connect to second data source */
DBconnect( henv, &hdbc[1] ) ;
/********* Start Processing Step *************************/
/* allocate statement handle, execute statement, etc. */
/********* End Processing Step ***************************/
/* Disconnect, free handles and exit */