195 lines
5.9 KiB
C
195 lines
5.9 KiB
C
/* srptypes.h -- types for SisterPersist */
|
|
|
|
/* declare Scheme types for those SQL types that have
|
|
no existing Scheme analog
|
|
*/
|
|
|
|
extern Scheme_Type sql_date_type;
|
|
extern Scheme_Type sql_decimal_type;
|
|
extern Scheme_Type sql_pointer_type;
|
|
extern Scheme_Type sql_time_type;
|
|
extern Scheme_Type sql_timestamp_type;
|
|
extern Scheme_Type sql_return_type;
|
|
extern Scheme_Type sql_henv_type;
|
|
extern Scheme_Type sql_hdbc_type;
|
|
extern Scheme_Type sql_hstmt_type;
|
|
extern Scheme_Type sql_hdesc_type;
|
|
extern Scheme_Type sql_boxed_uint_type;
|
|
extern Scheme_Type sql_buffer_type;
|
|
extern Scheme_Type sql_length_type;
|
|
extern Scheme_Type sql_indicator_type;
|
|
extern Scheme_Type sql_row_status_type;
|
|
extern Scheme_Type sql_array_status_type;
|
|
extern Scheme_Type sql_binding_offset_type;
|
|
extern Scheme_Type sql_rows_processed_type;
|
|
extern Scheme_Type sql_octet_length_type;
|
|
extern Scheme_Type sql_op_parms_type;
|
|
extern Scheme_Type sql_guid_type;
|
|
extern Scheme_Type sql_paramlength_type;
|
|
|
|
typedef struct _sql_henv_ {
|
|
Scheme_Type type;
|
|
SQLHENV henv;
|
|
} SRP_SQL_HENV;
|
|
|
|
typedef struct _sql_hdbc_ {
|
|
Scheme_Type type;
|
|
SQLHDBC hdbc;
|
|
} SRP_SQL_HDBC;
|
|
|
|
typedef struct _sql_hstmt_ {
|
|
Scheme_Type type;
|
|
SQLHDBC hstmt;
|
|
} SRP_SQL_HSTMT;
|
|
|
|
#if (ODBCVER >= 0x300)
|
|
typedef enum _desctype_ {
|
|
APD,ARD,IPD,IRD,EXPLICIT
|
|
} DESCTYPE;
|
|
|
|
typedef struct _sql_hdesc_ {
|
|
Scheme_Type type;
|
|
DESCTYPE descType;
|
|
SQLHDESC hdesc;
|
|
} SRP_SQL_HDESC;
|
|
#endif
|
|
|
|
typedef struct _sql_boxed_uint_ {
|
|
Scheme_Type type;
|
|
SQLUINTEGER *pointer;
|
|
} SRP_SQL_BOXED_UINT;
|
|
|
|
typedef struct _sql_buffer_ {
|
|
Scheme_Type type;
|
|
void *storage;
|
|
SQLSMALLINT CDataType;
|
|
long width;
|
|
long arrayLength;
|
|
int eltSize;
|
|
} SRP_SQL_BUFFER;
|
|
|
|
typedef struct _sql_length_ {
|
|
Scheme_Type type;
|
|
SQLINTEGER value;
|
|
} SRP_SQL_LENGTH;
|
|
|
|
typedef struct _sql_indicator_ {
|
|
Scheme_Type type;
|
|
long arrayLength;
|
|
SQLINTEGER *storage;
|
|
} SRP_SQL_INDICATOR;
|
|
|
|
typedef struct _sql_row_status_ {
|
|
Scheme_Type type;
|
|
BOOL usesSchemeStorage;
|
|
SQLUINTEGER numRows;
|
|
SQLUSMALLINT *values;
|
|
} SRP_SQL_ROW_STATUS;
|
|
|
|
#if (ODBCVER >= 0x300)
|
|
typedef struct _sql_array_status_ {
|
|
Scheme_Type type;
|
|
SQLHDESC hdesc;
|
|
DESCTYPE descType;
|
|
SQLUSMALLINT *values;
|
|
} SRP_SQL_ARRAY_STATUS;
|
|
#endif
|
|
|
|
typedef struct _sql_binding_offset_ {
|
|
Scheme_Type type;
|
|
SQLINTEGER *val;
|
|
} SRP_SQL_BINDING_OFFSET;
|
|
|
|
typedef struct _sql_rows_processed_ {
|
|
Scheme_Type type;
|
|
SQLUINTEGER *val;
|
|
} SRP_SQL_ROWS_PROCESSED;
|
|
|
|
typedef struct _sql_octet_length_ {
|
|
Scheme_Type type;
|
|
SQLINTEGER *val;
|
|
} SRP_SQL_OCTET_LENGTH;
|
|
|
|
typedef struct _sql_op_parms_ {
|
|
Scheme_Type type;
|
|
SQLUINTEGER paramSetSize;
|
|
SQLUSMALLINT *values;
|
|
} SRP_SQL_OP_PARMS;
|
|
|
|
#if (ODBCVER >= 0x0350)
|
|
typedef struct _sql_guid_ {
|
|
Scheme_Type type;
|
|
SQLGUID guid;
|
|
} SRP_SQL_GUID;
|
|
#endif
|
|
|
|
#define SQL_HENVP(o) (!SCHEME_INTP(o) && o->type == sql_henv_type)
|
|
#define SQL_HENV_VAL(o) (((SRP_SQL_HENV *)o)->henv)
|
|
|
|
#define SQL_HDBCP(o) (!SCHEME_INTP(o) && o->type == sql_hdbc_type)
|
|
#define SQL_HDBC_VAL(o) (((SRP_SQL_HDBC *)o)->hdbc)
|
|
|
|
#define SQL_HSTMTP(o) (!SCHEME_INTP(o) && o->type == sql_hstmt_type)
|
|
#define SQL_HSTMT_VAL(o) (((SRP_SQL_HSTMT *)o)->hstmt)
|
|
|
|
#define SQL_HDESCP(o) (!SCHEME_INTP(o) && o->type == sql_hdesc_type)
|
|
#define SQL_HDESC_VAL(o) (((SRP_SQL_HDESC *)o)->hdesc)
|
|
#define SQL_HDESC_DESCTYPE(o) (((SRP_SQL_HDESC *)o)->descType)
|
|
|
|
#define SQL_BUFFERP(o) (!SCHEME_INTP(o) && o->type == sql_buffer_type)
|
|
#define SQL_BUFFER_VAL(o) (((SRP_SQL_BUFFER *)o)->storage)
|
|
#define SQL_BUFFER_WIDTH(o) (((SRP_SQL_BUFFER *)o)->width)
|
|
#define SQL_BUFFER_ARRAYLEN(o) (((SRP_SQL_BUFFER *)o)->arrayLength)
|
|
#define SQL_BUFFER_ELTSIZE(o) (((SRP_SQL_BUFFER *)o)->eltSize)
|
|
#define SQL_BUFFER_LEN(o) (SQL_BUFFER_WIDTH(o) * SQL_BUFFER_ARRAYLEN(o) * SQL_BUFFER_ELTSIZE(o))
|
|
#define SQL_BUFFER_CTYPE(o) (((SRP_SQL_BUFFER *)o)->CDataType)
|
|
|
|
#define SQL_LENGTHP(o) (!SCHEME_INTP(o) && o->type == sql_length_type)
|
|
#define SQL_LENGTH_VAL(o) (((SRP_SQL_LENGTH *)o)->value)
|
|
|
|
#define SQL_INDICATORP(o) (!SCHEME_INTP(o) && o->type == sql_indicator_type)
|
|
#define SQL_INDICATOR_VAL(o) (((SRP_SQL_INDICATOR *)o)->storage)
|
|
#define SQL_INDICATOR_LEN(o) (((SRP_SQL_INDICATOR *)o)->arrayLength)
|
|
|
|
#define SQL_OP_PARMSP(o) (!SCHEME_INTP(o) && o->type == sql_op_parms_type)
|
|
#define SQL_OP_PARMS_LEN(o) (((SRP_SQL_OP_PARMS *)o)->paramSetSize)
|
|
#define SQL_OP_PARMS_VAL(o) (((SRP_SQL_OP_PARMS *)o)->values)
|
|
|
|
#define SQL_AP_DESCP(o) (!SCHEME_INTP(o) && o->type == sql_ap_desc_type)
|
|
#define SQL_AP_DESC_VAL(o) (((SRP_SQL_AP_DESC *)o)->handle)
|
|
|
|
#define SQL_AR_DESCP(o) (!SCHEME_INTP(o) && o->type == sql_ar_desc_type)
|
|
#define SQL_AR_DESC_VAL(o) (((SRP_SQL_AR_DESC *)o)->handle)
|
|
|
|
#define SQL_IP_DESCP(o) (!SCHEME_INTP(o) && o->type == sql_ip_desc_type)
|
|
#define SQL_IP_DESC_VAL(o) (((SRP_SQL_IP_DESC *)o)->handle)
|
|
|
|
#define SQL_IR_DESCP(o) (!SCHEME_INTP(o) && o->type == sql_ir_desc_type)
|
|
#define SQL_IR_DESC_VAL(o) (((SRP_SQL_IR_DESC *)o)->handle)
|
|
|
|
#define SQL_BOXED_UINTP(o) (!SCHEME_INTP(o) && o->type == sql_boxed_uint_type)
|
|
#define SQL_BOXED_UINT_VAL(o) (((SRP_SQL_BOXED_UINT *)o)->pointer)
|
|
|
|
#define SQL_ROW_STATUSP(o) (!SCHEME_INTP(o) && o->type == sql_row_status_type)
|
|
#define SQL_ROW_STATUS_VAL(o) (((SRP_SQL_ROW_STATUS *)o)->values)
|
|
#define SQL_ROW_STATUS_LEN(o) (((SRP_SQL_ROW_STATUS *)o)->numRows)
|
|
|
|
#define SQL_ARRAY_STATUSP(o) (!SCHEME_INTP(o) && o->type == sql_array_status_type)
|
|
#define SQL_ARRAY_STATUS_VAL(o) (((SRP_SQL_ARRAY_STATUS *)o)->values)
|
|
#define SQL_ARRAY_STATUS_HDESC(o) (((SRP_SQL_ARRAY_STATUS *)o)->hdesc)
|
|
#define SQL_ARRAY_STATUS_DESCTYPE(o) (((SRP_SQL_ARRAY_STATUS *)o)->descType)
|
|
|
|
#define SQL_BINDING_OFFSETP(o) (!SCHEME_INTP(o) && o->type == sql_binding_offset_type)
|
|
#define SQL_BINDING_OFFSET_VAL(o) (((SRP_SQL_BINDING_OFFSET *)o)->val)
|
|
|
|
#define SQL_ROWS_PROCESSEDP(o) (!SCHEME_INTP(o) && o->type == sql_rows_processed_type)
|
|
#define SQL_ROWS_PROCESSED_VAL(o) (((SRP_SQL_ROWS_PROCESSED *)o)->val)
|
|
|
|
#define SQL_OCTET_LENGTHP(o) (!SCHEME_INTP(o) && o->type == sql_octet_length_type)
|
|
#define SQL_OCTET_LENGTH_VAL(o) (((SRP_SQL_OCTET_LENGTH *)o)->val)
|
|
|
|
#define SQL_BUFFER_UNDEFINED_LEN (LONG_MIN)
|
|
|
|
|
|
|