/******************************************************************************
**
** Source File Name = utilcli.h
**
** Licensed Materials - Property of IBM
**
** (C) COPYRIGHT International Business Machines Corp. 1995, 2000
** All Rights Reserved.
**
** US Government Users Restricted Rights - Use, duplication or
** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
**
******************************************************************************/
#define MAX_UID_LENGTH 18
#define MAX_PWD_LENGTH 30
#define MAX_STMT_LEN 255
#define MAX_COLUMNS 255
#ifdef DB2WIN
#define MAX_TABLES 50
#else
#define MAX_TABLES 255
#endif
#ifndef max
#define max(a,b) (a > b ? a : b)
#endif
/* Macro for common Handle Checking */
#define HANDLE_CHECK( htype, hndl, SQLRC, phenv, phdbc ) \
if ( SQLRC != SQL_SUCCESS ) \
{ rc = HandleInfoPrint( htype, hndl, SQLRC, \
__LINE__, __FILE__) ; \
if ( rc != 0 ) \
{ CLIAppCleanUp( phenv, phdbc, 1); \
return rc; \
} \
}
/* Macro for Handle Checking in applications with multiple connections */
#define MC_HANDLE_CHECK( htype, hndl, SQLRC, phenv, a_hdbc, numConns ) \
if ( SQLRC != SQL_SUCCESS ) \
{ rc = HandleInfoPrint( htype, hndl, SQLRC, \
__LINE__, __FILE__) ; \
if ( rc != 0 ) \
{ CLIAppCleanUp( phenv, a_hdbc, numConns ); \
return rc; \
} \
}
/* Macro for Statement Handle Checking */
#define STMT_HANDLE_CHECK( hstmt, SQLRC ) \
if ( SQLRC != SQL_SUCCESS ) \
{ rc = HandleInfoPrint( SQL_HANDLE_STMT, hstmt, \
SQLRC, __LINE__, __FILE__ ) ; \
if ( rc == 2 ) StmtResourcesFree( hstmt ); \
if ( rc != 0 ) return rc; \
}
/* Macro for Connection Handle Checking */
#define DBC_HANDLE_CHECK( hdbc, SQLRC ) \
if ( SQLRC != SQL_SUCCESS ) \
{ rc = HandleInfoPrint( SQL_HANDLE_DBC, hdbc, \
SQLRC, __LINE__, __FILE__ ) ; \
if ( rc != 0 ) return rc; \
}
/* Macro for Enironment Handle Checking */
#define ENV_HANDLE_CHECK( henv, SQLRC ) \
if ( SQLRC != SQL_SUCCESS ) \
{ rc = HandleInfoPrint( SQL_HANDLE_ENV, henv, \
SQLRC, __LINE__, __FILE__ ) ; \
if ( rc != 0 ) return rc; \
}
/* functions used in ...CHECK_HANDLE macros */
int HandleInfoPrint( SQLSMALLINT, SQLHANDLE, SQLRETURN, int, char *);
void CLIAppCleanUp(SQLHANDLE *, SQLHANDLE a_hdbc[], int);
int StmtResourcesFree( SQLHANDLE );
/* other useful functions with self-explanatory names */
int CmdLineArgsCheck1( int, char * argv[], char *, char *, char *);
int CmdLineArgsCheck2( int, char * argv[], char *, char *, char *, char *);
int CLIAppInit( char * , char *, char *, SQLHANDLE *, SQLHANDLE *, SQLPOINTER );
int CLIAppTerm( SQLHANDLE *, SQLHANDLE *, char *);
int StmtResultPrint( SQLHANDLE );