Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			400 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			400 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
// *****************************************************
 | 
						|
// Copyright (c) 2001-2011 iAnywhere Solutions, Inc.
 | 
						|
// Portions copyright (c) 1988-2011 Sybase, Inc.
 | 
						|
// All rights reserved. All unpublished rights reserved.
 | 
						|
// *****************************************************
 | 
						|
 | 
						|
#ifndef _SQLCA_H_INCLUDED
 | 
						|
#define _SQLCA_H_INCLUDED
 | 
						|
#define II_SQLCA
 | 
						|
 | 
						|
#include "sqlos.h"
 | 
						|
#ifndef UNDER_PALM_OS_GARNET
 | 
						|
    #include <stddef.h>
 | 
						|
#endif
 | 
						|
 | 
						|
/******************************************************************/
 | 
						|
/*  Define _SQL32 or _SQL64 based on target operating-system.     */
 | 
						|
/******************************************************************/
 | 
						|
 | 
						|
#if defined( _SQL_OS_UNIX64 )
 | 
						|
    #define _SQL64
 | 
						|
#else
 | 
						|
    #define _SQL32
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
/******************************************************************/
 | 
						|
/*  Define _sqlfar macro (definition left for compatibility reasons */
 | 
						|
/******************************************************************/
 | 
						|
 | 
						|
#define _sqlfar
 | 
						|
#define _sqlfar_isfar	0
 | 
						|
 | 
						|
/*********************************************/
 | 
						|
/* Version check for sqlpp-to-dblib interface*/
 | 
						|
/*********************************************/
 | 
						|
 | 
						|
typedef unsigned short          a_sqlpp_version_number;
 | 
						|
 | 
						|
#define SQLPP_DBLIB_VERSION_INITIAL     1
 | 
						|
#define SQLPP_DBLIB_VERSION_WSQL32      2
 | 
						|
#define SQLPP_DBLIB_VERSION_REENTRANCY  3
 | 
						|
#define SQLPP_DBLIB_VERSION_WSQL40      4
 | 
						|
#define SQLPP_DBLIB_VERSION_SA50        4
 | 
						|
#define SQLPP_DBLIB_VERSION_ASA6        6
 | 
						|
#define SQLPP_DBLIB_VERSION_ASA7        7
 | 
						|
#define SQLPP_DBLIB_VERSION_ASA8        8
 | 
						|
#define SQLPP_DBLIB_VERSION_ASA9        9
 | 
						|
#define SQLPP_DBLIB_VERSION_SA10        10
 | 
						|
#define SQLPP_DBLIB_VERSION_SA11        11
 | 
						|
#define SQLPP_DBLIB_VERSION_SA12        12
 | 
						|
#define SQLPP_DBLIB_VERSION	        12
 | 
						|
 | 
						|
#if defined( _SQL_SQLPP_VERSION_MAJOR )  \
 | 
						|
&&  _SQL_SQLPP_VERSION_MAJOR != SQLPP_DBLIB_VERSION
 | 
						|
    #error Incorrect version of SQLPP used for this header file
 | 
						|
#endif
 | 
						|
 | 
						|
/******************************************************************/
 | 
						|
/*  Define structure packing macro based on environment           */
 | 
						|
/******************************************************************/
 | 
						|
 | 
						|
#if ( defined( _SQL_OS_WINNT ) && !defined( UNDER_CE ) && !defined( _WIN64 ) ) \
 | 
						|
||  defined( _SQL_OS_NETWARE )
 | 
						|
    #define _SQL_PACK_STRUCTURES    1
 | 
						|
#endif
 | 
						|
 | 
						|
/******************************************************************/
 | 
						|
/*  Structure definitions                                         */
 | 
						|
/******************************************************************/
 | 
						|
 | 
						|
#if defined( _SQL_PACK_STRUCTURES )
 | 
						|
    #if defined( _MSC_VER ) && _MSC_VER > 800
 | 
						|
	#pragma warning(push)
 | 
						|
        #pragma warning(disable:4103)
 | 
						|
    #endif
 | 
						|
    #include "pshpk1.h"
 | 
						|
#endif
 | 
						|
 | 
						|
typedef short		a_sql_len;
 | 
						|
typedef unsigned short	a_sql_ulen;
 | 
						|
 | 
						|
typedef a_sql_int32     an_sql_code;
 | 
						|
typedef char            an_sql_state[6];
 | 
						|
 | 
						|
struct sqlwarn{
 | 
						|
    unsigned char   sqlwarn0;
 | 
						|
    unsigned char   sqlwarn1;
 | 
						|
    unsigned char   sqlwarn2;
 | 
						|
    unsigned char   sqlwarn3;
 | 
						|
    unsigned char   sqlwarn4;
 | 
						|
    unsigned char   sqlwarn5;
 | 
						|
    unsigned char   sqlwarn6;
 | 
						|
    unsigned char   sqlwarn7;
 | 
						|
    unsigned char   sqlwarn8;
 | 
						|
    unsigned char   sqlwarn9;
 | 
						|
};
 | 
						|
 | 
						|
#if defined( _SQL_PACK_STRUCTURES )
 | 
						|
    #include "poppk.h"
 | 
						|
    /* The SQLCA should be 4-byte aligned */
 | 
						|
    #include "pshpk4.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
typedef struct _sqlca{
 | 
						|
#else
 | 
						|
typedef struct sqlca{
 | 
						|
#endif
 | 
						|
    unsigned char       sqlcaid[8];
 | 
						|
    a_sql_int32         sqlcabc;
 | 
						|
    an_sql_code         sqlcode;
 | 
						|
    short               sqlerrml;
 | 
						|
    unsigned char       sqlerrmc[70];
 | 
						|
    unsigned char       sqlerrp[8];
 | 
						|
    a_sql_int32         sqlerrd[6];
 | 
						|
    struct sqlwarn	sqlwarn;
 | 
						|
    an_sql_state	sqlstate;
 | 
						|
} SQLCA;
 | 
						|
 | 
						|
#ifndef SQLCAPTR
 | 
						|
    #define SQLCAPTR	    sqlcaptr
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef SQLCODE
 | 
						|
    #define SQLCODE         SQLCAPTR->sqlcode
 | 
						|
    #define SQLWARN0        SQLCAPTR->sqlwarn.sqlwarn0
 | 
						|
    #define SQLWARN1        SQLCAPTR->sqlwarn.sqlwarn1
 | 
						|
    #define SQLWARN2        SQLCAPTR->sqlwarn.sqlwarn2
 | 
						|
    #define SQLWARN3        SQLCAPTR->sqlwarn.sqlwarn3
 | 
						|
    #define SQLWARN4        SQLCAPTR->sqlwarn.sqlwarn4
 | 
						|
    #define SQLWARN5        SQLCAPTR->sqlwarn.sqlwarn5
 | 
						|
    #define SQLWARN6        SQLCAPTR->sqlwarn.sqlwarn6
 | 
						|
    #define SQLWARN7        SQLCAPTR->sqlwarn.sqlwarn7
 | 
						|
    #define SQLWARN8        SQLCAPTR->sqlwarn.sqlwarn8
 | 
						|
    #define SQLWARN9        SQLCAPTR->sqlwarn.sqlwarn9
 | 
						|
    #define SQLSTATE        SQLCAPTR->sqlstate
 | 
						|
    
 | 
						|
    #define SQLIOCOUNT_F    sqlerrd[1]
 | 
						|
    #define SQLCOUNT_F      sqlerrd[2]
 | 
						|
    #define SQLIOESTIMATE_F sqlerrd[3]
 | 
						|
 | 
						|
    #define SQLIOCOUNT      SQLCAPTR->SQLIOCOUNT_F
 | 
						|
    #define SQLCOUNT        SQLCAPTR->SQLCOUNT_F
 | 
						|
    #define SQLIOESTIMATE   SQLCAPTR->SQLIOESTIMATE_F
 | 
						|
#endif
 | 
						|
 | 
						|
#if defined( _SQL_PACK_STRUCTURES )
 | 
						|
    #include "poppk.h"
 | 
						|
    /* Everything else must be single-byte aligned */
 | 
						|
    #include "pshpk1.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#define DECL_NCHAR char
 | 
						|
 | 
						|
#define DECL_VARCHAR( size )  \
 | 
						|
        struct { a_sql_ulen len; \
 | 
						|
                 unsigned char array[size+1];  \
 | 
						|
        } 
 | 
						|
 | 
						|
#define DECL_NVARCHAR( size )  \
 | 
						|
        struct { a_sql_ulen len; \
 | 
						|
                 unsigned char array[size+1];  \
 | 
						|
        } 
 | 
						|
 | 
						|
#define DECL_BINARY( size )  \
 | 
						|
        struct { a_sql_ulen len; \
 | 
						|
                 unsigned char array[size];  \
 | 
						|
        } 
 | 
						|
 | 
						|
#define DECL_LONGVARCHAR( size )  \
 | 
						|
	struct { a_sql_uint32	array_len;  \
 | 
						|
		 a_sql_uint32	stored_len;  \
 | 
						|
		 a_sql_uint32	untrunc_len;  \
 | 
						|
		 char		array[size+1];  \
 | 
						|
	}
 | 
						|
 | 
						|
#define DECL_LONGNVARCHAR( size )  \
 | 
						|
	struct { a_sql_uint32	array_len;  \
 | 
						|
		 a_sql_uint32	stored_len;  \
 | 
						|
		 a_sql_uint32	untrunc_len;  \
 | 
						|
		 char		array[size+1];  \
 | 
						|
	}
 | 
						|
 | 
						|
#define DECL_LONGBINARY( size )  \
 | 
						|
	struct { a_sql_uint32	array_len;  \
 | 
						|
		 a_sql_uint32	stored_len;  \
 | 
						|
		 a_sql_uint32	untrunc_len;  \
 | 
						|
		 char		array[size];  \
 | 
						|
	}
 | 
						|
 | 
						|
#define DECL_DECIMAL( prec, scale )  \
 | 
						|
        struct { char   array[ ((prec)/2) + 1 ]; \
 | 
						|
        }
 | 
						|
 | 
						|
#define DECL_FIXCHAR( size )  \
 | 
						|
        struct { char   array[ size ]; \
 | 
						|
	}
 | 
						|
 | 
						|
#define DECL_NFIXCHAR( size )  \
 | 
						|
        struct { char   array[ size ]; \
 | 
						|
	}
 | 
						|
 | 
						|
#define DECL_DATETIME  \
 | 
						|
        struct sqldatetime
 | 
						|
 | 
						|
#define DECL_BIT \
 | 
						|
        unsigned char
 | 
						|
 | 
						|
#if defined(__WATCOMC__) || defined(_MSC_VER) || defined(__BORLANDC__)
 | 
						|
 | 
						|
#define DECL_BIGINT             __int64
 | 
						|
#define DECL_UNSIGNED_BIGINT    unsigned __int64
 | 
						|
 | 
						|
#elif defined(_SQL64)
 | 
						|
 | 
						|
#define DECL_BIGINT             long
 | 
						|
#define DECL_UNSIGNED_BIGINT    unsigned long
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
#define DECL_BIGINT             long long
 | 
						|
#define DECL_UNSIGNED_BIGINT    unsigned long long
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
typedef struct VARCHAR {
 | 
						|
    a_sql_ulen		len;
 | 
						|
    char                array[1];
 | 
						|
} VARCHAR;
 | 
						|
 | 
						|
typedef struct NVARCHAR {
 | 
						|
    a_sql_ulen		len;
 | 
						|
    char                array[1];
 | 
						|
} NVARCHAR;
 | 
						|
 | 
						|
typedef struct BINARY {
 | 
						|
    a_sql_ulen		len;
 | 
						|
    char                array[1];
 | 
						|
} BINARY;
 | 
						|
 | 
						|
typedef struct LONGVARCHAR {
 | 
						|
    a_sql_uint32	array_len;  /* number of allocated bytes in array */
 | 
						|
    a_sql_uint32	stored_len; /* number of bytes stored in array
 | 
						|
				     * (never larger than array_len) */
 | 
						|
    a_sql_uint32	untrunc_len;/* number of bytes in untruncated expression
 | 
						|
				     * (may be larger than array_len) */
 | 
						|
    char		array[1];   /* the data */
 | 
						|
} LONGVARCHAR, LONGNVARCHAR, LONGBINARY;
 | 
						|
 | 
						|
/* used by LONGVARCHARSIZE and LONGBINARYSIZE */
 | 
						|
#define _SQL_OFFSETOF(__typ,__id) ((size_t)&(((__typ*)0)->__id))
 | 
						|
 | 
						|
/* number of bytes to allocate for LONGVARCHAR or LONGBINARY structure
 | 
						|
 * with n bytes in array */
 | 
						|
#define LONGVARCHARSIZE( n )	( _SQL_OFFSETOF( LONGVARCHAR, array[0] ) + n )
 | 
						|
#define LONGNVARCHARSIZE( n )	LONGVARCHARSIZE( n )
 | 
						|
#define LONGBINARYSIZE( n )	LONGVARCHARSIZE( n )
 | 
						|
 | 
						|
typedef struct TYPE_DECIMAL {
 | 
						|
    char                array[1];
 | 
						|
} TYPE_DECIMAL;
 | 
						|
 | 
						|
typedef short int       a_sql_statement_number;
 | 
						|
 | 
						|
/* Supported values for port_type in a_server_address
 | 
						|
   (used by db_locate_servers) */
 | 
						|
#define PORT_TYPE_TCP     6
 | 
						|
 | 
						|
typedef struct a_server_address {
 | 
						|
    a_sql_uint32	port_type;	/* Only returns PORT_TYPE_TCP  */
 | 
						|
    a_sql_uint32	port_num;       /* TCP Port number             */
 | 
						|
    char 		*name;		/* Name of the database engine */
 | 
						|
    char 		*address;	/* IP address                  */
 | 
						|
    char		*dbname;	/* Database name               */
 | 
						|
} a_server_address;
 | 
						|
 | 
						|
/* Supported flags for db_lookup_servers_ex */
 | 
						|
#define DB_LOOKUP_FLAG_NUMERIC			0x0001
 | 
						|
#define DB_LOOKUP_FLAG_DATABASES		0x0002
 | 
						|
#define DB_LOOKUP_FLAG_ADDRESS_INCLUDES_PORT	0x0004
 | 
						|
 | 
						|
/* Supported flags for fill_sqlda_ex */
 | 
						|
#define FILL_SQLDA_FLAG_RETURN_DT_LONG		0x0001
 | 
						|
 | 
						|
struct a_dblib_info;
 | 
						|
 | 
						|
struct sqlda;
 | 
						|
 | 
						|
#include "sqlcallback.h"
 | 
						|
 | 
						|
#if defined( _SQL_PACK_STRUCTURES )
 | 
						|
    #include "poppk.h"
 | 
						|
    #if defined( _MSC_VER ) && _MSC_VER > 800
 | 
						|
        #pragma warning(pop)
 | 
						|
    #endif
 | 
						|
#endif
 | 
						|
 | 
						|
/******************************************************************/
 | 
						|
/*  Define __SMALLDATA__ based on other compiler macros           */
 | 
						|
/******************************************************************/
 | 
						|
 | 
						|
#ifndef __SMALLDATA__
 | 
						|
    #ifdef M_I86SM
 | 
						|
	#define __SMALLDATA__
 | 
						|
    #endif
 | 
						|
    #ifdef M_I86MM
 | 
						|
	#define __SMALLDATA__
 | 
						|
    #endif
 | 
						|
    #ifdef __TURBOC__
 | 
						|
	#if defined( __TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
 | 
						|
	    #define __SMALLDATA__
 | 
						|
	#endif
 | 
						|
    #endif
 | 
						|
#endif
 | 
						|
 | 
						|
 | 
						|
/******************************************************************/
 | 
						|
/*  PLATFORM specific definitions                                 */
 | 
						|
/******************************************************************/
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    SQLDA_CLEAR,
 | 
						|
    SQLDA_NOCLEAR,
 | 
						|
    SQLDA_NOEXEC
 | 
						|
} a_descriptor_behaviour;
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    SQLDA_TYPE,
 | 
						|
    SQLDA_LENGTH,
 | 
						|
    SQLDA_RETURNED_LENGTH,
 | 
						|
    SQLDA_PRECISION,
 | 
						|
    SQLDA_SCALE,
 | 
						|
    SQLDA_NULLABLE,
 | 
						|
    SQLDA_INDICATOR
 | 
						|
} a_descriptor_field;
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    DB_PROP_SERVER_ADDRESS,
 | 
						|
    DB_PROP_DBLIB_VERSION,
 | 
						|
    DB_PROP_CLIENT_CHARSET
 | 
						|
} a_db_property;
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    DB_SET_PROP_CLIENT_API
 | 
						|
} a_db_set_property;
 | 
						|
 | 
						|
/* Standard functions emitted by sqlpp require covers for some platforms */
 | 
						|
#ifdef UNDER_PALM_OS_GARNET
 | 
						|
    #ifndef memcpy
 | 
						|
	#define memcpy	MemMove
 | 
						|
    #endif
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef II_SQL_FUNCS
 | 
						|
#define II_SQL_FUNCS
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
    extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
/* external sqlca data structure */
 | 
						|
 | 
						|
extern SQLCA		sqlca;
 | 
						|
extern SQLCA		*sqlcaptr;
 | 
						|
 | 
						|
/* Macros for multiple sqlca management */
 | 
						|
 | 
						|
#define db_set_sqlca( sqlca )	    sqlcaptr = sqlca
 | 
						|
#define db_get_sqlca()		    sqlcaptr
 | 
						|
 | 
						|
 | 
						|
/* Generate function pointers or function prototypes */
 | 
						|
 | 
						|
#ifndef UNDER_UL_SQLPP	/* UltraLite uses its own sqlpp function headers*/
 | 
						|
#define UNDER_ASA_SQLPP
 | 
						|
#ifndef _NO_FUNC_INFO
 | 
						|
#ifdef _USE_ESQLDLL
 | 
						|
#define FUNC_INFO( scope, rettype, call, fname, parms ) \
 | 
						|
        extern rettype ( call * fname ) parms;
 | 
						|
#include "sqlfuncs.h"
 | 
						|
#undef FUNC_INFO
 | 
						|
#else
 | 
						|
#define FUNC_INFO( scope, rettype, call, fname, parms ) \
 | 
						|
        scope rettype call fname parms;
 | 
						|
#include "sqlfuncs.h"
 | 
						|
#undef FUNC_INFO
 | 
						|
#endif //_USE_ESQLDLL
 | 
						|
#endif //_NO_FUNC_INFO
 | 
						|
#endif //UNDER_UL_SQLPP
 | 
						|
	
 | 
						|
#ifdef __cplusplus
 | 
						|
    }
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 | 
						|
 |