/* returns column precision of numberic data type */ int ORADB_CALL ORA_column_get_precision ( IN ora_column column );
/* returns column scale of numberic data type */ int ORADB_CALL ORA_column_get_scale ( IN ora_column column );
/* returns whether column is null ok */ BOOL ORADB_CALL ORA_column_is_null_ok ( IN ora_column column );
/* returns whether column value is null */ BOOL ORADB_CALL ORA_column_is_null ( IN ora_column column );
/* returns column value as string */ lresult ORADB_CALL ORA_column_as_string ( IN ora_column column, OUT char **outval, /* Returns address of pointer to actual data */ OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as double */ lresult ORADB_CALL ORA_column_as_double ( IN ora_column column, OUT double *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as float32 */ lresult ORADB_CALL ORA_column_as_float ( IN ora_column column, OUT float *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as long */ lresult ORADB_CALL ORA_column_as_long ( IN ora_column column, OUT long *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as unsigned long */ lresult ORADB_CALL ORA_column_as_ulong ( IN ora_column column, OUT ulong *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as int64 */ lresult ORADB_CALL ORA_column_as_longlong ( IN ora_column column, OUT longlong *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as uint64 */ lresult ORADB_CALL ORA_column_as_ulonglong ( IN ora_column column, OUT ulonglong *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns column value as datetime */ lresult ORADB_CALL ORA_column_as_datetime ( IN ora_column column, OUT ora_datetime *outval, OUT ora_error_t *error );
/* gets lob size for read. if a column isn"t a LOB type or NULL, return 0 */ size_t ORADB_CALL ORA_column_lob_size ( IN ora_column column );
/* read lob column value - pulling mode */ /* An example of pulling lob data with ORA_column_read_lob: #define BUFF_SIZE 512
while ((rc=ORA_column_read_lob (col, lob_siz, cb_offs, lob_buf, &cb_read, &err))==ORC_NEED_DATA || rc==ORC_SUCCESS) { memcpy (lob_data+cb_offs, lob_buf, cb_read); cb_offs += cb_read; if (rc==ORC_SUCCESS) break; cb_read = BUFF_SIZE; } ASSERT (cb_offs == lob_siz); */ lresult ORADB_CALL ORA_column_read_lob ( IN ora_column column, IN size_t lobsize_to_read, /* total bytes to read, usually is lob_size */ IN size_t cb_offset, /* offset bytes from the start of lob data */ INOUT byte* in_buf, /* when returned, in_buf has actual data */ INOUT size_t* cb_read, /* input is buf size and output is size of bytes be read */ OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns lob column value as bytes once for all. out_buf is allocated by caller for fetch bytes. * buf_size is size of out_buf * ORA_column_as_bytes calls ORA_column_read_lob internally. */ /* An example of pulling lob data with ORA_column_as_bytes: size_t lob_size = ORA_column_lob_size (col); byte* out_buf = malloc (lob_size); ORA_column_as_bytes (col, out_buf, &lob_size, NULL); ... free (out_buf); */ lresult ORADB_CALL ORA_column_as_bytes ( IN ora_column column, INOUT byte* out_buf, INOUT size_t* lob_size, /* size bytes of lob data which must <= size of buffer */ OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_long ( IN ora_param param, IN long val, OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_ulong ( IN ora_param param, IN ulong val, OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_longlong ( IN ora_param param, IN longlong val, OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_ulonglong ( IN ora_param param, IN ulonglong val, OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_datetime ( IN ora_param param, IN ora_datetime val, OUT ora_error_t *error /* NULL for no err msg return */ );
void ORADB_CALL ORA_param_set_null ( IN ora_param param );
lresult ORADB_CALL ORA_param_set_float ( IN ora_param param, IN float val, OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_double ( IN ora_param param, IN double val, OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_string ( IN ora_param param, IN const char *val, IN short len, /* -1 for strlen called */ OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_param_set_bytes ( IN ora_param param, IN const byte *in_buf, IN ushort size_buf, OUT ora_error_t *error /* NULL for no err msg return */ );
BOOL ORADB_CALL ORA_param_is_null ( IN ora_param param );
/* returns column value as string */ lresult ORADB_CALL ORA_param_as_string ( IN ora_param param, OUT char **outval, /* Returns address of pointer to actual data */ OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as double */ lresult ORADB_CALL ORA_param_as_double ( IN ora_param param, OUT double *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as float32 */ lresult ORADB_CALL ORA_param_as_float ( IN ora_param param, OUT float *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as long */ lresult ORADB_CALL ORA_param_as_long ( IN ora_param param, OUT long *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as unsigned long */ lresult ORADB_CALL ORA_param_as_ulong ( IN ora_param param, OUT ulong *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as long */ lresult ORADB_CALL ORA_param_as_longlong ( IN ora_param param, OUT longlong *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as unsigned long */ lresult ORADB_CALL ORA_param_as_ulonglong ( IN ora_param param, OUT ulonglong *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as datetime */ lresult ORADB_CALL ORA_param_as_datetime ( IN ora_param param, OUT ora_datetime *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/* returns param value as rowset */ lresult ORADB_CALL ORA_param_as_rowset ( IN ora_param param, OUT ora_rowset *outval, OUT ora_error_t *error /* NULL for no err msg return */ );
/*====================================================================== datetime Functions - oradate.c ======================================================================*/ /* creates a datetime opaque pointer which must be free after using */ lresult ORADB_CALL ORA_datetime_create ( OUT ora_datetime *dt /* must be a valid pointer */ );
lresult ORADB_CALL ORA_datetime_set_all ( IN ora_datetime dt, IN short year, /* gregorian year; range is -4712 <= year <= 9999 */ IN ORADBI_DTMonth month, /* month; range is 1 <= month < 12 */ IN byte day, /* day; range is 1 <= day <= 31 */ IN byte hours, /* hours; range is 0 <= hours <=23 */ IN byte minutes, /* minutes; range is 0 <= minutes <= 59 */ IN byte seconds, /* seconds; range is 0 <= seconds <= 59 */ OUT ora_error_t *error /* NULL for no err msg return */ );
void ORADB_CALL ORA_datetime_get_all ( IN ora_datetime dt, OUT short *year, /* gregorian year; range is -4712 <= year <= 9999 */ OUT ORADBI_DTMonth *month, /* month; range is 1 <= month < 12 */ OUT byte *day, /* day; range is 1 <= day <= 31 */ OUT byte *hours, /* hours; range is 0 <= hours <=23 */ OUT byte *minutes, /* minutes; range is 0 <= minutes <= 59 */ OUT byte *seconds /* seconds; range is 0 <= seconds <= 59 */ );
lresult ORADB_CALL ORA_datetime_set_fld ( IN ora_datetime dt, IN ORADBI_DTField dt_field, IN short dt_val, OUT ora_error_t *error /* NULL for no err msg return */ );
short ORADB_CALL ORA_datetime_get_fld ( IN ora_datetime dt, IN ORADBI_DTField dt_field );
lresult ORADB_CALL ORA_string_to_datetime ( IN const char *dt_string, /* datetime string such as: 1975-08-14 12:53:42 */ IN char *dt_format, /* datetime format such as: yyyy-mm-dd hh:uu:ss */ OUT ora_datetime dt_to, /* datetime that string translated to */ OUT ora_error_t *error /* NULL for no err msg return */ );
lresult ORADB_CALL ORA_datetime_to_string ( IN ora_datetime dt_in, /* datetime to be translated */ IN char *dt_format, /* datetime format such as: yyyy-mm-dd hh:uu:ss */ OUT char *string_to, /* datetime string such as: 1975-08-14 12:53:42 */ OUT ora_error_t *error /* NULL for no err msg return */ );
/* frees a ora_datetime */ void ORADB_CALL ORA_datetime_free ( IN ora_datetime dt );