ASA Programming Guide
ODBC Programming
Connecting to a data source
Your application must establish a connection before it can carry out any database operations.
To establish an ODBC connection
Allocate an ODBC environment.
For example:
SQLHENV env; SQLRETURN retcode; retcode = SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env );
Declare the ODBC version.
By declaring that the application follows ODBC version 3, SQLSTATE values and some other version-dependent features are set to the proper behavior. For example:
retcode = SQLSetEnvAttr( env, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
If necessary, assemble the data source or connection string.
Depending on your application, you may have a hard-coded data source or connection string, or you may store it externally for greater flexibility.
Allocate an ODBC connection item.
For example:
retcode = SQLAllocHandle( SQL_HANDLE_DBC, env, &dbc );
Set any connection attributes that must be set before connecting.
Some connection attributes must be set before establishing a connection, while others can be set either before or after. For example:
retcode = SQLSetConnectAttr( dbc, SQL_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_OFF, 0 );
For more information, see Setting connection attributes.
Call the ODBC connection function.
For example:
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) { printf( "dbc allocated\n" ); retcode = SQLConnect( dbc, (SQLCHAR*) "ASA 9.0 Sample", SQL_NTS, (SQLCHAR* ) "DBA", SQL_NTS, (SQLCHAR*) "SQL", SQL_NTS ); if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){ // successfully connected.
You can find a complete sample as Samples\ASA\ODBCConnect\odbcconnect.cpp in your SQL Anywhere directory.
SQL_NTS Every string passed to ODBC has a corresponding length. If the length is unknown, you can pass SQL_NTS indicating that it is a Null Terminated String whose end is marked by the null character (\0).
SQLSetConnectAttr By default, ODBC operates in auto-commit mode. This mode is turned off by setting SQL_AUTOCOMMIT to false.
For more information, see Setting connection attributes.