SQLRETURN _SQLPrimaryKeys( SQLHSTMT        hDrvStmt,
								SQLCHAR         *szCatalogName,
								SQLSMALLINT     nCatalogNameLength,
								SQLCHAR         *szSchemaName,
								SQLSMALLINT     nSchemaNameLength,
								SQLCHAR         *szTableName,
								SQLSMALLINT     nTableNameLength )
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "_SQLPrimaryKeys"
	#endif
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long)hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );


    /************************
     * todo: REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
Example #2
0
SQLRETURN  SQLGetConnectAttr(
                             SQLHDBC             hDrvDbc,
                             SQLINTEGER          Attribute,
                             SQLPOINTER          Value,
                             SQLINTEGER          BufferLength,
                             SQLINTEGER         *StringLength
                            )
{
	HDRVDBC	hDbc	= (HDRVDBC)hDrvDbc;

	/* SANITY CHECKS */
    if( NULL == hDbc )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hDbc->szSqlMsg, "hDbc = $%08lX", (long)hDbc );
    logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hDbc->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


    return SQL_ERROR;
}
SQLRETURN  SQLBindParameter( SQLHSTMT           hDrvStmt,
							 SQLUSMALLINT       nParameterNumber,
							 SQLSMALLINT		nIOType,
							 SQLSMALLINT        nBufferType,
							 SQLSMALLINT        nParamType,
							 SQLULEN            nParamLength,
							 SQLSMALLINT        nScale,
							 SQLPOINTER         pData,
							 SQLLEN             nBufferLength,
							 SQLLEN             *pnLengthOrIndicator
						   )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

    /* SANITY CHECKS */
    if( NULL == hStmt )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt=$%08lX nParameterNumber=%d nIOType=%d nBufferType=%d nParamType=%d nParamLength=%d nScale=%d pData=$%08lX nBufferLength=%d *pnLengthOrIndicator=$%08lX",hStmt,nParameterNumber,nIOType,nBufferType,nParamType,nParamLength,nScale,pData,nBufferLength, *pnLengthOrIndicator );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not currently supported" );

    return SQL_ERROR;
}
Example #4
0
SQLRETURN SQLProcedures(
							 SQLHSTMT        hDrvStmt,
							 SQLCHAR         *szCatalogName,
							 SQLSMALLINT     nCatalogNameLength,
							 SQLCHAR         *szSchemaName,
							 SQLSMALLINT     nSchemaNameLength,
							 SQLCHAR         *szProcName,
							 SQLSMALLINT     nProcNameLength )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = %p", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
}
Example #5
0
SQLRETURN SQLExecDirect(  SQLHSTMT    hDrvStmt,
						  SQLCHAR     *szSqlStr,
						  SQLINTEGER  nSqlStr )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;
	RETCODE         rc;
					
	/* SANITY CHECKS */
    if( NULL == hStmt )
        return SQL_INVALID_HANDLE;

	sprintf( hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );

	/* prepare command */
	rc = _Prepare( hDrvStmt, szSqlStr, nSqlStr );
	if ( SQL_SUCCESS != rc )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "Could not prepare statement" );
		return rc;
	}

	/* execute command */
	rc = _Execute( hDrvStmt );
	if ( SQL_SUCCESS != rc )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "Problem calling SQLEXecute" );
		return rc;
	}

	logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
	return SQL_SUCCESS;
}
Example #6
0
SQLRETURN SQLColumnPrivileges(    SQLHSTMT        hDrvStmt,
                                  SQLCHAR         *szCatalogName,
                                  SQLSMALLINT     nCatalogNameLength,
                                  SQLCHAR         *szSchemaName,
                                  SQLSMALLINT     nSchemaNameLength,
                                  SQLCHAR         *szTableName,
                                  SQLSMALLINT     nTableNameLength,
                                  SQLCHAR         *szColumnName,
                                  SQLSMALLINT     nColumnNameLength )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

    /* SANITY CHECKS */
    if( NULL == hStmt )
        return SQL_INVALID_HANDLE;

    sprintf( hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


    return SQL_ERROR;
}
Example #7
0
SQLRETURN SQLTransact(	SQLHENV hDrvEnv,
						SQLHDBC hDrvDbc,
						UWORD   nType)
{
	HDRVENV hEnv	= (HDRVENV)hDrvEnv;
	HDRVDBC hDbc	= (HDRVDBC)hDrvDbc;

	/* SANITY CHECKS */
	if ( hEnv == SQL_NULL_HENV )
		return SQL_INVALID_HANDLE;

	sprintf( hEnv->szSqlMsg, "hEnv = $%08lX", hEnv );
	logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hEnv->szSqlMsg );

	
	switch ( nType )
	{
	case SQL_COMMIT:
		break;
	case SQL_ROLLBACK:
		break;
	default:
		sprintf( hEnv->szSqlMsg, "SQL_ERROR Invalid nType=%d", nType );
		logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hEnv->szSqlMsg );
		return SQL_ERROR;
	}

	logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR Function not supported" );
	return SQL_ERROR;
}
SQLRETURN _SQLSetStmtOption(	SQLHSTMT  hDrvStmt,
									UWORD   fOption,
									SQLULEN  vParam)
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "_SQLSetStmtOption"
	#endif
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long)hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

    /************************
     * todo: REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
Example #9
0
SQLRETURN   SQLSetParam(SQLHSTMT hDrvStmt,
           SQLUSMALLINT nPar, SQLSMALLINT nType,
           SQLSMALLINT nSqlType, SQLULEN nColDef,
           SQLSMALLINT nScale, SQLPOINTER pValue,
           SQLLEN *pnValue)
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = %p", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

	if ( !hStmt->pszQuery )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR No prepared statement to work with" );
		return SQL_ERROR;
	}

	/******************
	 * 1. Your param storage is in hStmt->hStmtExtras
	 *    so you will have to code for it. Do it here.
	 ******************/
	

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
}
/* THIS IS CORRECT...
SQLRETURN SQLSpecialColumns(  SQLHSTMT        hDrvStmt,
									SQLSMALLINT     nColumnType,
									SQLCHAR         *szCatalogName,
									SQLSMALLINT     nCatalogNameLength,
									SQLCHAR         *szSchemaName,
									SQLSMALLINT     nSchemaNameLength,
									SQLCHAR         *szTableName,
									SQLSMALLINT     nTableNameLength,
									SQLSMALLINT     nScope,
									SQLSMALLINT     nNullable )
THIS WORKS... */
SQLRETURN SQLSpecialColumns(  SQLHSTMT        hDrvStmt,
									UWORD     nColumnType,
									UCHAR         *szCatalogName,
									SWORD     nCatalogNameLength,
									UCHAR         *szSchemaName,
									SWORD     nSchemaNameLength,
									UCHAR         *szTableName,
									SWORD     nTableNameLength,
									UWORD     nScope,
									UWORD     nNullable )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );


    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
}
Example #11
0
SQLRETURN sqlFreeConnect( SQLHDBC hDrvDbc )
{
	HDRVDBC	hDbc	= (HDRVDBC)hDrvDbc;
	int		nReturn;

	/* SANITY CHECKS */
    if( NULL == hDbc )
        return SQL_INVALID_HANDLE;

	sprintf( hDbc->szSqlMsg, "hDbc = $%08lX", hDbc );
    logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hDbc->szSqlMsg );

    if( hDbc->hDbcExtras->hServer > -1 )
    {
		logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR Connection is active" );
		return SQL_ERROR;
    }

	if ( hDbc->hFirstStmt != NULL )
	{
		logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR Connection has allocated statements" );
		return SQL_ERROR;
	}

	nReturn = _FreeDbc( hDbc );

	return nReturn;

}
SQLRETURN SQLRowCount(    SQLHSTMT    hDrvStmt,
								SQLLEN  *pnRowCount)
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "SQLRowCount"
	#endif
	SQLRETURN r;
	/************************
	 * SANITY CHECKS
	 ************************/
	if( NULL == hDrvStmt )
		return SQL_INVALID_HANDLE;
	/* LOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_lock( &((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->mutex, ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->nMutexTimeout ) )
	{
		logPushMsg( ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR mutex lock failed" );
		return SQL_ERROR;
	}

	/* DOIT */
	r = _SQLRowCount( hDrvStmt, pnRowCount );

	/* UNLOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_unlock( &((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->mutex) )
	{
		logPushMsg( ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hLog, __FILE__, __FUNC__, __LINE__, LOG_ERROR, LOG_ERROR, "SQL_ERROR mutex unlock failed" );
		return SQL_ERROR;
	}
	return r;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
SQLRETURN _SQLRowCount(    SQLHSTMT    hDrvStmt,
								SQLLEN  *pnRowCount)
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "_SQLRowCount"
	#endif
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long)hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

	if ( NULL == pnRowCount )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR pnRowCount can not be NULL" );
		return SQL_ERROR;
	}

	*pnRowCount = hStmt->hStmtExtras->nRows;

    logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
	return SQL_SUCCESS;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
Example #14
0
SQLRETURN sqlFreeEnv( SQLHENV hDrvEnv )
{
    HDRVENV hEnv	= (HDRVENV)hDrvEnv;

    /* SANITY CHECKS */
    if( hEnv == SQL_NULL_HENV )
        return SQL_INVALID_HANDLE;

    sprintf( hEnv->szSqlMsg, "hEnv = $%08lX", hEnv );
    logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hEnv->szSqlMsg );

    if ( hEnv->hFirstDbc != NULL )
    {
        logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR There are allocated Connections" );
        return SQL_ERROR;
    }

    /************
     * 	!!! ADD CODE TO FREE DRIVER SPECIFIC MEMORY (hidden in hEnvExtras) HERE !!!
     ************/
    free( hEnv->hEnvExtras );
    logPushMsg( hEnv->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
    logClose( hEnv->hLog );
    free( hEnv );

    return SQL_SUCCESS;
}
Example #15
0
SQLRETURN SQLNumResultCols(   SQLHSTMT    hDrvStmt,
                                    SQLSMALLINT *pnColumnCount )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
	if ( NULL == hStmt )
		return SQL_INVALID_HANDLE;
	
	sprintf( hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
	logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );

	if ( hStmt->hStmtExtras->nRows < 0 )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR No result set." );
		return SQL_ERROR;
	}

    /********************
     * get number of columns in result set
     ********************/
	*pnColumnCount = hStmt->hStmtExtras->nCols;

    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
    return SQL_SUCCESS;
}
SQLRETURN _SQLDescribeCol( SQLHSTMT    	hDrvStmt,
						  SQLUSMALLINT	nCol,
						  SQLCHAR     	*szColName,
						  SQLSMALLINT 	nColNameMax,
						  SQLSMALLINT 	*pnColNameLength,
						  SQLSMALLINT 	*pnSQLDataType,
						  SQLULEN 	*pnColSize,
						  SQLSMALLINT 	*pnDecDigits,
						  SQLSMALLINT 	*pnNullable )
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "_SQLDescribeCol"
	#endif
    HDRVSTMT 	hStmt			= (HDRVSTMT)hDrvStmt;
	COLUMNHDR	*pColumnHeader;			

	/* SANITY CHECKS */
	if ( NULL == hStmt )
		return SQL_INVALID_HANDLE;

	if ( NULL == hStmt->hStmtExtras )
		return SQL_INVALID_HANDLE;

	if ( hStmt->hStmtExtras->nRows < 1 )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR No result set." );
		return SQL_ERROR;
	}
	if ( nCol < 1 || nCol > hStmt->hStmtExtras->nCols )
	{
		sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Column %d is out of range. Range is 1 - %d", nCol, hStmt->hStmtExtras->nCols );
		logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );
		return SQL_ERROR;
	}

	/* OK */
	pColumnHeader = (COLUMNHDR*)(hStmt->hStmtExtras->aResults)[nCol];
	if ( szColName )
		strncpy((char*) szColName, pColumnHeader->pszSQL_DESC_NAME, nColNameMax );
	if ( pnColNameLength )
		*pnColNameLength = strlen((char*) szColName );
	if ( pnSQLDataType )
		*pnSQLDataType = pColumnHeader->nSQL_DESC_TYPE;
	if ( pnColSize )
		*pnColSize = pColumnHeader->nSQL_DESC_LENGTH;
	if ( pnDecDigits )
		*pnDecDigits = pColumnHeader->nSQL_DESC_SCALE;
	if ( pnNullable )
		*pnNullable = pColumnHeader->nSQL_DESC_NULLABLE;
	
	logPushMsg( hStmt->hLog, __FILE__, __FUNC__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
	return SQL_SUCCESS;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
Example #17
0
SQLRETURN SQLSetPos(	SQLHSTMT  		hDrvStmt,
							SQLSETPOSIROW	nRow,
							SQLUSMALLINT	nOperation,
							SQLUSMALLINT	nLockType )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

	/* OK */

	switch ( nOperation )
	{
	case SQL_POSITION:
		break;
	case SQL_REFRESH:
		break;
	case SQL_UPDATE:
		break;
	case SQL_DELETE:
		break;
	default:
		sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Invalid nOperation=%d", nOperation );
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );
		return SQL_ERROR;
	}

	switch ( nLockType )
	{
	case SQL_LOCK_NO_CHANGE:
		break;
	case SQL_LOCK_EXCLUSIVE:
		break;
	case SQL_LOCK_UNLOCK:
		break;
	default:
		sprintf((char*) hStmt->szSqlMsg, "SQL_ERROR Invalid nLockType=%d", nLockType );
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );
		return SQL_ERROR;
	}

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
}
SQLRETURN  SQLGetConnectAttr(
                             SQLHDBC             hDrvDbc,
                             SQLINTEGER          nAttribute,
                             SQLPOINTER          pValue,
                             SQLINTEGER          nBufferLength,
                             SQLINTEGER          *pnStringLength
                            )
{
	HDRVDBC	hDbc	= (HDRVDBC)hDrvDbc;

	/* SANITY CHECKS */
    if( NULL == hDbc )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hDbc->szSqlMsg, "START: hDbc = %p nAttribute = %d", hDbc, nAttribute );
    logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO,(char*) hDbc->szSqlMsg );

/********************************************************/
/* DRIVER SPECIFIC               						*/
    switch ( nAttribute )
    {
    case SQL_ATTR_AUTOCOMMIT:
        *(int*)pValue = SQL_AUTOCOMMIT_ON;
        break;
    case SQL_ATTR_CURRENT_CATALOG:
        strncpy( pValue, hDbc->hDbcExtras->pszDatabase, nBufferLength );
        *pnStringLength = strlen( pValue );
        break;
    case SQL_ATTR_ACCESS_MODE:
    case SQL_ATTR_ASYNC_ENABLE:
    case SQL_ATTR_CONNECTION_TIMEOUT:
    case SQL_ATTR_LOGIN_TIMEOUT:
    case SQL_ATTR_METADATA_ID:
    case SQL_ATTR_ODBC_CURSORS:
    case SQL_ATTR_PACKET_SIZE:
    case SQL_ATTR_QUIET_MODE:
    case SQL_ATTR_TRACE:
    case SQL_ATTR_TRACEFILE:
    case SQL_ATTR_TRANSLATE_LIB:
    case SQL_ATTR_TRANSLATE_OPTION:
    case SQL_ATTR_TXN_ISOLATION:
    default:
        logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "END: Attribute not supported." );
        return SQL_ERROR; 
    }
/********************************************************/

    logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "END: Success" );

    return SQL_SUCCESS;
}
Example #19
0
SQLRETURN SQLExecute( SQLHSTMT  hDrvStmt )
{
    HDRVSTMT 	hStmt	= (HDRVSTMT)hDrvStmt;
	int			nColumn;
	int			nCols;
	int			nRow;
	COLUMNHDR	*pColumnHeader;			

	/* SANITY CHECKS */
    if( NULL == hStmt )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

    if( hStmt->pszQuery == NULL )
    {
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR No prepared statement" );
        return SQL_ERROR;
    }

    /**************************
	 * Free any current results
     **************************/
	if ( hStmt->hStmtExtras->aResults )
		_FreeResults( hStmt->hStmtExtras );

    /**************************
	 * send prepared query to server
     **************************/

    /**************************
	 * allocate memory for columns headers and result data (row 0 is column header while col 0 is reserved for bookmarks)
     **************************/

    /**************************
	 * gather column header information (save col 0 for bookmarks)
     **************************/

	/************************
	 * gather data (save col 0 for bookmarks)
	 ************************/

    /**************************
	 * free the snapshot
     **************************/

    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
    return SQL_SUCCESS;
}
Example #20
0
SQLRETURN SQLCancel(  SQLHSTMT  hDrvStmt )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

    /* SANITY CHECKS */
    if( NULL == hStmt )
        return SQL_INVALID_HANDLE;

	sprintf( hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );

    return SQL_ERROR;
}
Example #21
0
SQLRETURN SQLGetCursorName(   SQLHSTMT    hDrvStmt,
							  SQLCHAR     *szCursor,
							  SQLSMALLINT nCursorMaxLength,
							  SQLSMALLINT *pnCursorLength )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	int     ci;								 /* counter variable         */

	/* SANITY CHECKS */
	if ( NULL == hStmt )
		return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = %p", hStmt );
	logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );
	
	if ( NULL == szCursor )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR No cursor name." );
		return SQL_ERROR;
	}

	/*
	** copy cursor name
	*/
	strncpy((char*) szCursor,(char*) hStmt->szCursorName, nCursorMaxLength );

	/*
	** set length of transfered data
	*/
	ci = strlen((char*) hStmt->szCursorName );
/*
	if ( NULL != pnCursorLength )
		*pnCursorLength = MIN( ci, nCursorMaxLength );
*/
	if ( nCursorMaxLength < ci )
	{
		logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_SUCCESS_WITH_INFO Cursor was truncated" );
		return SQL_SUCCESS_WITH_INFO;
	}

	logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "SQL_SUCCESS" );
	return SQL_SUCCESS;
}
SQLRETURN SQLDescribeCol( SQLHSTMT    	hDrvStmt,
						  SQLUSMALLINT	nCol,
						  SQLCHAR     	*szColName,
						  SQLSMALLINT 	nColNameMax,
						  SQLSMALLINT 	*pnColNameLength,
						  SQLSMALLINT 	*pnSQLDataType,
						  SQLULEN 	*pnColSize,
						  SQLSMALLINT 	*pnDecDigits,
						  SQLSMALLINT 	*pnNullable )
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "SQLDescribeCol"
	#endif
	SQLRETURN r;
	/************************
	 * SANITY CHECKS
	 ************************/
	if( NULL == hDrvStmt )
		return SQL_INVALID_HANDLE;
	/* LOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_lock( &((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->mutex, ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->nMutexTimeout ) )
	{
		logPushMsg( ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR mutex lock failed" );
		return SQL_ERROR;
	}

	/* DOIT */
	r = _SQLDescribeCol( hDrvStmt, nCol, szColName, nColNameMax, pnColNameLength, pnSQLDataType, pnColSize, pnDecDigits, pnNullable );

	/* UNLOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_unlock( &((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->mutex) )
	{
		logPushMsg( ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hLog, __FILE__, __FUNC__, __LINE__, LOG_ERROR, LOG_ERROR, "SQL_ERROR mutex unlock failed" );
		return SQL_ERROR;
	}
	return r;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
Example #23
0
SQLRETURN SQLBrowseConnect(
                             SQLHDBC        hDrvDbc,
                             SQLCHAR        *szConnStrIn,
                             SQLSMALLINT    cbConnStrIn,
                             SQLCHAR        *szConnStrOut,
                             SQLSMALLINT    cbConnStrOutMax,
                             SQLSMALLINT    *pcbConnStrOut
                                )
{
	HDRVDBC hDbc	= (HDRVDBC)hDrvDbc;

	if ( hDbc == NULL )
		return SQL_INVALID_HANDLE;
	
	sprintf( hDbc->szSqlMsg, "hDbc = $%08lX", hDbc );
    logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hDbc->szSqlMsg );

	logPushMsg( hDbc->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not currently supported" );

    return SQL_ERROR;
}
Example #24
0
SQLRETURN SQLFetchScroll( SQLHSTMT    hDrvStmt,
                                SQLSMALLINT nOrientation,
                                SQLLEN  nOffset )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( NULL == hStmt )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", (long)hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


    return SQL_ERROR;
}
SQLRETURN SQLPrimaryKeys( SQLHSTMT        hDrvStmt,
								SQLCHAR         *szCatalogName,
								SQLSMALLINT     nCatalogNameLength,
								SQLCHAR         *szSchemaName,
								SQLSMALLINT     nSchemaNameLength,
								SQLCHAR         *szTableName,
								SQLSMALLINT     nTableNameLength )
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "SQLPrimaryKeys"
	#endif
	SQLRETURN r;
	/************************
	 * SANITY CHECKS
	 ************************/
	if( NULL == hDrvStmt )
		return SQL_INVALID_HANDLE;
	/* LOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_lock( &((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->mutex, ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->nMutexTimeout ) )
	{
		logPushMsg( ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR mutex lock failed" );
		return SQL_ERROR;
	}

	/* DOIT */
	r = _SQLPrimaryKeys( hDrvStmt, szCatalogName, nCatalogNameLength, szSchemaName, nSchemaNameLength, szTableName, nTableNameLength );

	/* UNLOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_unlock( &((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hEnvExtras->mutex) )
	{
		logPushMsg( ((HDRVENV)((HDRVDBC)((HDRVSTMT)hDrvStmt)->hDbc)->hEnv)->hLog, __FILE__, __FUNC__, __LINE__, LOG_ERROR, LOG_ERROR, "SQL_ERROR mutex unlock failed" );
		return SQL_ERROR;
	}
	return r;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
SQLRETURN  SQLGetEnvAttr(    SQLHENV             EnvironmentHandle,
                             SQLINTEGER          Attribute,
                             SQLPOINTER          Value,
                             SQLINTEGER          BufferLength,
                             SQLINTEGER         *StringLength
                        )
{
	#ifndef __FUNC__
		#define _OTAR_RM_FUNC_
		#define __FUNC__ "SQLGetEnvAttr"
	#endif
	SQLRETURN r;
	/************************
	 * SANITY CHECKS
	 ************************/
	if( NULL == EnvironmentHandle )
		return SQL_INVALID_HANDLE;
	/* LOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_lock( &((HDRVENV)EnvironmentHandle)->hEnvExtras->mutex, ((HDRVENV)EnvironmentHandle)->hEnvExtras->nMutexTimeout ) )
	{
		logPushMsg( ((HDRVENV)EnvironmentHandle)->hLog, __FILE__, __FUNC__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR mutex lock failed" );
		return SQL_ERROR;
	}

	/* DOIT */
	r = _SQLGetEnvAttr( EnvironmentHandle, Attribute, Value, BufferLength, StringLength );

	/* UNLOCK THE MUTEX */
	if( MUTEX_SUCESS != mutex_unlock( &((HDRVENV)EnvironmentHandle)->hEnvExtras->mutex) )
	{
		logPushMsg( ((HDRVENV)EnvironmentHandle)->hLog, __FILE__, __FUNC__, __LINE__, LOG_ERROR, LOG_ERROR, "SQL_ERROR mutex unlock failed" );
		return SQL_ERROR;
	}
	return r;
	#ifdef _OTAR_RM_FUNC_
		#undef _OTAR_RM_FUNC_
		#undef __FUNC__
	#endif
}
Example #27
0
SQLRETURN  SQLGetStmtAttr(   SQLHSTMT            hDrvStmt,
                             SQLINTEGER          Attribute,
                             SQLPOINTER          Value,
                             SQLINTEGER          BufferLength,
                             SQLINTEGER         *StringLength
                         )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
	if ( NULL == hStmt )
		return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
	logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );
    return SQL_ERROR;
}
SQLRETURN SQLSetScrollOptions(    SQLHSTMT  	hDrvStmt,
										UWORD   	fConcurrency,
										SDWORD  	crowKeyset,
										UWORD   	crowRowset )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf( hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, hStmt->szSqlMsg );


    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
}
Example #29
0
SQLRETURN SQLPutData(
						  SQLHSTMT    hDrvStmt,
						  SQLPOINTER  pData,
						  SQLLEN      nLengthOrIndicator )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
    if( hStmt == SQL_NULL_HSTMT )
        return SQL_INVALID_HANDLE;

	sprintf((char*) hStmt->szSqlMsg, "hStmt = $%08lX", hStmt );
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );


    /************************
     * REPLACE THIS COMMENT WITH SOMETHING USEFULL
     ************************/
    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING, "SQL_ERROR This function not supported" );


	return SQL_ERROR;
}
Example #30
0
SQLRETURN SQLNumResultCols(		SQLHSTMT    hDrvStmt,
								SQLSMALLINT *pnColumnCount )
{
    HDRVSTMT hStmt	= (HDRVSTMT)hDrvStmt;

	/* SANITY CHECKS */
	if ( !hStmt )
		return SQL_INVALID_HANDLE;
	
	sprintf((char*) hStmt->szSqlMsg, "START: hStmt = %p", hStmt );
	logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_WARNING, LOG_WARNING,(char*) hStmt->szSqlMsg );

/********************************************************/
/* DRIVER SPECIFIC               						*/
	if ( !hStmt->hStmtExtras->hResultSet )
        *pnColumnCount = 0;
	else
		*pnColumnCount = hStmt->hStmtExtras->hResultSet->nCols;
/********************************************************/

    logPushMsg( hStmt->hLog, __FILE__, __FILE__, __LINE__, LOG_INFO, LOG_INFO, "END: Success." );
    return SQL_SUCCESS;
}