63d98e39cd
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
311 lines
13 KiB
C
311 lines
13 KiB
C
/****************************************************************************
|
|
*
|
|
* IBM CORP.
|
|
*
|
|
* PROPRIETARY DATA
|
|
*
|
|
* Licensed Material - Property Of IBM
|
|
*
|
|
* "Restricted Materials of IBM"
|
|
*
|
|
* IBM Informix Client SDK
|
|
*
|
|
* (c) Copyright IBM Corporation 1997, 2011. All rights reserved.
|
|
*
|
|
** INFXCLI.H - This is the the main include for IBM Informix-CLI
|
|
** applications.
|
|
**
|
|
** Preconditions:
|
|
** for Windows environment:
|
|
** #include "windows.h"
|
|
**
|
|
*********************************************************************/
|
|
|
|
#ifndef __INFXCLI_H
|
|
#define __INFXCLI_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" { /* Assume C declarations for C++ */
|
|
#endif /* __cplusplus */
|
|
|
|
/*
|
|
** include sql.h and sqlext.h
|
|
*/
|
|
#ifdef _WINDOWS_
|
|
#include "sql.h"
|
|
#include "sqlext.h"
|
|
#else
|
|
#include <stdlib.h>
|
|
#include "infxsql.h"
|
|
#endif /*_WINDOWS_*/
|
|
|
|
#define SQL_TXN_LAST_COMMITTED 0x00000010L
|
|
#define SQL_TRANSACTION_LAST_COMMITTED SQL_TXN_LAST_COMMITTED
|
|
|
|
/* For extended errors */
|
|
|
|
#define SQL_DIAG_ISAM_ERROR 13
|
|
#define SQL_DIAG_XA_ERROR 14
|
|
|
|
/* START -- Q+E Software's SQLSetStmtOption extensions (1040 to 1139) */
|
|
/* defines here for backwards compatibility */
|
|
|
|
#define SQL_STMTOPT_START 1040
|
|
|
|
/* Get the rowid for the last row inserted */
|
|
#define SQL_GET_ROWID (SQL_STMTOPT_START+8)
|
|
|
|
/* Get the value for the serial column in the last row inserted */
|
|
#define SQL_GET_SERIAL_VALUE (SQL_STMTOPT_START+9)
|
|
|
|
/* END -- Q+E Software's SQLSetStmtOption extensions (1040 to 1139) */
|
|
|
|
/*
|
|
** Informix extensions
|
|
*/
|
|
|
|
/* Informix Column Attributes Flags Definitions */
|
|
#define FDNULLABLE 0x0001 /* null allowed in field */
|
|
#define FDDISTINCT 0x0002 /* distinct of all */
|
|
#define FDDISTLVARCHAR 0x0004 /* distinct of SQLLVARCHAR */
|
|
#define FDDISTBOOLEAN 0x0008 /* distinct of SQLBOOL */
|
|
#define FDDISTSIMP 0x0010 /* distinct of simple type */
|
|
#define FDCSTTYPE 0x0020 /* constructor type */
|
|
#define FDNAMED 0x0040 /* named row type */
|
|
|
|
#define ISNULLABLE( flags ) ( flags & FDNULLABLE ? 1 : 0)
|
|
#define ISDISTINCT( flags ) ( flags & FDDISTINCT ? 1 : 0)
|
|
|
|
/* Informix Type Estensions */
|
|
#define SQL_INFX_UDT_FIXED -100
|
|
#define SQL_INFX_UDT_VARYING -101
|
|
#define SQL_INFX_UDT_BLOB -102
|
|
#define SQL_INFX_UDT_CLOB -103
|
|
#define SQL_INFX_UDT_LVARCHAR -104
|
|
#define SQL_INFX_RC_ROW -105
|
|
#define SQL_INFX_RC_COLLECTION -106
|
|
#define SQL_INFX_RC_LIST -107
|
|
#define SQL_INFX_RC_SET -108
|
|
#define SQL_INFX_RC_MULTISET -109
|
|
#define SQL_INFX_UNSUPPORTED -110
|
|
#define SQL_INFX_C_SMARTLOB_LOCATOR -111
|
|
#define SQL_INFX_QUALIFIER -112
|
|
#define SQL_INFX_DECIMAL -113
|
|
#define SQL_INFX_BIGINT -114
|
|
|
|
typedef void * HINFX_RC; /* row & collection handle */
|
|
|
|
/* Informix Connect Attributes Extensions */
|
|
#define SQL_OPT_LONGID 2251
|
|
#define SQL_INFX_ATTR_LONGID SQL_OPT_LONGID
|
|
#define SQL_INFX_ATTR_LEAVE_TRAILING_SPACES 2252
|
|
#define SQL_INFX_ATTR_DEFAULT_UDT_FETCH_TYPE 2253
|
|
#define SQL_INFX_ATTR_ENABLE_SCROLL_CURSORS 2254
|
|
#define SQL_ENABLE_INSERT_CURSOR 2255
|
|
#define SQL_INFX_ATTR_ENABLE_INSERT_CURSORS SQL_ENABLE_INSERT_CURSOR
|
|
#define SQL_INFX_ATTR_OPTIMIZE_AUTOCOMMIT 2256
|
|
#define SQL_INFX_ATTR_ODBC_TYPES_ONLY 2257
|
|
#define SQL_INFX_ATTR_FETCH_BUFFER_SIZE 2258
|
|
#define SQL_INFX_ATTR_OPTOFC 2259
|
|
#define SQL_INFX_ATTR_OPTMSG 2260
|
|
#define SQL_INFX_ATTR_REPORT_KEYSET_CURSORS 2261
|
|
#define SQL_INFX_ATTR_LO_AUTOMATIC 2262
|
|
#define SQL_INFX_ATTR_AUTO_FREE 2263
|
|
#define SQL_INFX_ATTR_DEFERRED_PREPARE 2265
|
|
|
|
#define SQL_INFX_ATTR_PAM_FUNCTION 2266 /* void pamCallback
|
|
(int msgStyle,
|
|
void *responseBuf,
|
|
int responseBufLen,
|
|
int *responseLenPtr,
|
|
void *challengeBuf,
|
|
int challengeBufLen,
|
|
int *challengeLenPtr) */
|
|
#define SQL_INFX_ATTR_PAM_RESPONSE_BUF 2267 /* SQLPOINTER */
|
|
#define SQL_INFX_ATTR_PAM_RESPONSE_BUF_LEN 2268 /* SQLINTEGER */
|
|
#define SQL_INFX_ATTR_PAM_RESPONSE_LEN_PTR 2269 /* SQLPOINTER */
|
|
#define SQL_INFX_ATTR_PAM_CHALLENGE_BUF 2270 /* SQLPOINTER */
|
|
#define SQL_INFX_ATTR_PAM_CHALLENGE_BUF_LEN 2271 /* SQLINTEGER */
|
|
#define SQL_INFX_ATTR_PAM_CHALLENGE_LEN_PTR 2272 /* SQLINTEGER * - number of bytes in challenge */
|
|
#define SQL_INFX_ATTR_DELIMIDENT 2273 /* As of now this attribute is only being used
|
|
in .NET Provider since it is sitting on top
|
|
of ODBC.*/
|
|
#define SQL_INFX_ATTR_DBLOCALE 2275
|
|
#define SQL_INFX_ATTR_LOCALIZE_DECIMALS 2276
|
|
#define SQL_INFX_ATTR_DEFAULT_DECIMAL 2277
|
|
#define SQL_INFX_ATTR_SKIP_PARSING 2278
|
|
#define SQL_INFX_ATTR_CALL_FROM_DOTNET 2279
|
|
#define SQL_INFX_ATTR_LENGTHINCHARFORDIAGRECW 2280
|
|
#define SQL_INFX_ATTR_SENDTIMEOUT 2281
|
|
#define SQL_INFX_ATTR_RECVTIMEOUT 2282
|
|
#define SQL_INFX_ATTR_IDSISAMERRMSG 2283
|
|
|
|
/*Attributes same as cli*/
|
|
#define SQL_ATTR_USE_TRUSTED_CONTEXT 2561
|
|
|
|
/* Informix Descriptor Extensions */
|
|
#define SQL_INFX_ATTR_FLAGS 1900 /* UDWORD */
|
|
#define SQL_INFX_ATTR_EXTENDED_TYPE_CODE 1901 /* UDWORD */
|
|
#define SQL_INFX_ATTR_EXTENDED_TYPE_NAME 1902 /* UCHAR ptr */
|
|
#define SQL_INFX_ATTR_EXTENDED_TYPE_OWNER 1903 /* UCHAR ptr */
|
|
#define SQL_INFX_ATTR_EXTENDED_TYPE_ALIGNMENT 1904 /* UDWORD */
|
|
#define SQL_INFX_ATTR_SOURCE_TYPE_CODE 1905 /* UDWORD */
|
|
|
|
/* Informix Statement Attributes Extensions */
|
|
#define SQL_VMB_CHAR_LEN 2325
|
|
#define SQL_INFX_ATTR_VMB_CHAR_LEN SQL_VMB_CHAR_LEN
|
|
#define SQL_INFX_ATTR_MAX_FET_ARR_SIZE 2326
|
|
|
|
/* Informix fOption, SQL_VMB_CHAR_LEN vParam */
|
|
#define SQL_VMB_CHAR_EXACT 0
|
|
#define SQL_VMB_CHAR_ESTIMATE 1
|
|
|
|
/* Informix row/collection traversal constants */
|
|
#define SQL_INFX_RC_NEXT 1
|
|
#define SQL_INFX_RC_PRIOR 2
|
|
#define SQL_INFX_RC_FIRST 3
|
|
#define SQL_INFX_RC_LAST 4
|
|
#define SQL_INFX_RC_ABSOLUTE 5
|
|
#define SQL_INFX_RC_RELATIVE 6
|
|
#define SQL_INFX_RC_CURRENT 7
|
|
|
|
/*******************************************************************************
|
|
* Large Object (LO) related structures
|
|
*
|
|
* LO_SPEC: Large object spec structure
|
|
* It is used for creating smartblobs. The user may examin and/or set certain
|
|
* fields of LO_SPEC by using ifx_lo_spec[set|get]_* accessor functions.
|
|
*
|
|
* LO_PTR: Large object pointer structure
|
|
* Identifies the LO and provides ancillary, security-related information.
|
|
*
|
|
* LO_STAT: Large object stat structure
|
|
* It is used in querying attribtes of smartblobs. The user may examin fields
|
|
* herein by using ifx_lo_stat[set|get]_* accessor functions.
|
|
*
|
|
* These structures are opaque to the user. Accessor functions are provided
|
|
* for these structures.
|
|
******************************************************************************/
|
|
|
|
/* Informix GetInfo Extensions to obtain length of LO related structures */
|
|
#define SQL_INFX_LO_SPEC_LENGTH 2250 /* UWORD */
|
|
#define SQL_INFX_LO_PTR_LENGTH 2251 /* UWORD */
|
|
#define SQL_INFX_LO_STAT_LENGTH 2252 /* UWORD */
|
|
|
|
/******************************************************************************
|
|
* LO Open flags: (see documentation for further explanation)
|
|
*
|
|
* LO_APPEND - Positions the seek position to end-of-file + 1. By itself,
|
|
* it is equivalent to write only mode followed by a seek to the
|
|
* end of large object. Read opeartions will fail.
|
|
* You can OR the LO_APPEND flag with another access mode.
|
|
* LO_WRONLY - Only write operations are valid on the data.
|
|
* LO_RDONLY - Only read operations are valid on the data.
|
|
* LO_RDWR - Both read and write operations are valid on the data.
|
|
*
|
|
* LO_RANDOM - If set overrides optimizer decision. Indicates that I/O is
|
|
* random and that the system should not read-ahead.
|
|
* LO_SEQUENTIAL - If set overrides optimizer decision. Indicates that
|
|
* reads are sequential in either forward or reverse direction.
|
|
*
|
|
* LO_FORWARD - Only used for sequential access. Indicates that the sequential
|
|
* access will be in a forward direction, i.e. from low offset
|
|
* to higher offset.
|
|
* LO_REVERSE - Only used for sequential access. Indicates that the sequential
|
|
* access will be in a reverse direction.
|
|
*
|
|
* LO_BUFFER - If set overrides optimizer decision. I/O goes through the
|
|
* buffer pool.
|
|
* LO_NOBUFFER - If set then I/O does not use the buffer pool.
|
|
******************************************************************************/
|
|
|
|
#define LO_APPEND 0x1
|
|
#define LO_WRONLY 0x2
|
|
#define LO_RDONLY 0x4 /* default */
|
|
#define LO_RDWR 0x8
|
|
|
|
#define LO_RANDOM 0x20 /* default is determined by optimizer */
|
|
#define LO_SEQUENTIAL 0x40 /* default is determined by optimizer */
|
|
|
|
#define LO_FORWARD 0x80 /* default */
|
|
#define LO_REVERSE 0x100
|
|
|
|
#define LO_BUFFER 0x200 /* default is determined by optimizer */
|
|
#define LO_NOBUFFER 0x400 /* default is determined by optimizer */
|
|
|
|
#define LO_DIRTY_READ 0x10
|
|
#define LO_NODIRTY_READ 0x800
|
|
|
|
#define LO_LOCKALL 0x1000 /* default */
|
|
#define LO_LOCKRANGE 0x2000
|
|
|
|
/*******************************************************************************
|
|
* LO create-time flags:
|
|
*
|
|
* Bitmask - Set/Get via ifx_lo_specset_flags() on LO_SPEC.
|
|
******************************************************************************/
|
|
|
|
#define LO_ATTR_LOG 0x0001
|
|
#define LO_ATTR_NOLOG 0x0002
|
|
#define LO_ATTR_DELAY_LOG 0x0004
|
|
#define LO_ATTR_KEEP_LASTACCESS_TIME 0x0008
|
|
#define LO_ATTR_NOKEEP_LASTACCESS_TIME 0x0010
|
|
#define LO_ATTR_HIGH_INTEG 0x0020
|
|
#define LO_ATTR_MODERATE_INTEG 0x0040
|
|
|
|
/*******************************************************************************
|
|
* Symbolic constants for the "lseek" routine
|
|
******************************************************************************/
|
|
|
|
#define LO_SEEK_SET 0 /* Set curr. pos. to "offset" */
|
|
#define LO_SEEK_CUR 1 /* Set curr. pos. to current + "offset" */
|
|
#define LO_SEEK_END 2 /* Set curr. pos. to EOF + "offset" */
|
|
|
|
/*******************************************************************************
|
|
* Symbolic constants for lo_lock and lo_unlock routines.
|
|
******************************************************************************/
|
|
|
|
#define LO_SHARED_MODE 1
|
|
#define LO_EXCLUSIVE_MODE 2
|
|
|
|
/*******************************************************************************
|
|
* Intersolv specific infoTypes for SQLGetInfo
|
|
******************************************************************************/
|
|
|
|
#define SQL_RESERVED_WORDS 1011
|
|
#define SQL_PSEUDO_COLUMNS 1012
|
|
#define SQL_FROM_RESERVED_WORDS 1013
|
|
#define SQL_WHERE_CLAUSE_TERMINATORS 1014
|
|
#define SQL_COLUMN_FIRST_CHARS 1015
|
|
#define SQL_COLUMN_MIDDLE_CHARS 1016
|
|
#define SQL_TABLE_FIRST_CHARS 1018
|
|
#define SQL_TABLE_MIDDLE_CHARS 1019
|
|
#define SQL_FAST_SPECIAL_COLUMNS 1021
|
|
#define SQL_ACCESS_CONFLICTS 1022
|
|
#define SQL_LOCKING_SYNTAX 1023
|
|
#define SQL_LOCKING_DURATION 1024
|
|
#define SQL_RECORD_OPERATIONS 1025
|
|
#define SQL_QUALIFIER_SYNTAX 1026
|
|
|
|
|
|
/* Function for acquiring the xa_switch structure defined by Informix RM */
|
|
|
|
struct xa_switch_t * _fninfx_xa_switch( void );
|
|
|
|
|
|
/* Function for obtaining the Environment handle associated with an XA
|
|
Connection */
|
|
|
|
RETCODE IFMX_SQLGetXaHenv(int, HENV *);
|
|
|
|
|
|
/*Function for obtaining the Database handle associated with an XA Connection */
|
|
|
|
RETCODE IFMX_SQLGetXaHdbc(int, HDBC *);
|
|
|
|
#ifdef __cplusplus
|
|
} /* End of extern "C" { */
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* __INFXCLI_H */
|