mtollari 63d98e39cd Patch level : 12.0 no-patch
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
2017-10-26 09:07:39 +00:00

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