/*
$Id: dbdimp.h,v 1.9 1995/08/22 05:55:16 timbo Rel $
Copyright (c) 1994,1995 Tim Bunce
You may distribute under the terms of either the GNU General Public
License or the Artistic License, as specified in the Perl README file.
*/
/* these are (almost) random values ! */
#define MAX_COLS 99
#define MAX_COL_NAME_LEN 99
#define MAX_BIND_VARS 99
#ifndef HDA_SIZE
#define HDA_SIZE 512
#endif
typedef
struct
imp_fbh_st imp_fbh_t;
struct
imp_drh_st {
dbih_drc_t com;
/* MUST be first element in structure */
};
/* Define dbh implementor data structure */
struct
imp_dbh_st {
dbih_dbc_t com;
/* MUST be first element in structure */
/* Lda_Def lda; And What are we?
ub1 hda[HDA_SIZE]; */
};
/* Define sth implementor data structure */
struct
imp_sth_st {
dbih_stc_t com;
/* MUST be first element in structure */
/* Cda_Def *cda; currently just points to cdabuf below
Cda_Def cdabuf; Ya...Whatever. =) */
/* Input Details */
char
*statement;
/* sql (see sth_scan) */
HV *bind_names;
/* Output Details */
int
done_desc;
/* have we described this sth yet ? */
imp_fbh_t *fbh;
/* array of imp_fbh_t structs */
char
*fbh_cbuf;
/* memory for all field names */
/* sb4 long_buflen;*/
/* length for long/longraw (if >0) */
bool
long_trunc_ok;
/* is truncating a long an error */
};
#define IMP_STH_EXECUTING 0x0001
struct
imp_fbh_st {
/* field buffer EXPERIMENTAL */
imp_sth_t *imp_sth;
/* 'parent' statement */
/* Oracle's description of the field */
/* sb4 dbsize; */
/* sb2 dbtype;*/
/* sb1 *cbuf; */
/* ptr to name of select-list item */
/* sb4 cbufl; */
/* length of select-list item name */
/* sb4 dsize; */
/* max display size if field is a char */
/* sb2 prec; */
/* sb2 scale; */
/* sb2 nullok; */
/* Our storage space for the field data as it's fetched */
/* sb2 indp; */
/* null/trunc indicator variable */
/* sword ftype; */
/* external datatype we wish to get */
/* ub1 *buf; */
/* data buffer (points to sv data) */
/* ub2 bufl;*/
/* length of data buffer */
/* ub2 rlen;*/
/* length of returned data */
/* ub2 rcode;*/
/* field level error status */
SV *sv;
};
typedef
struct
phs_st phs_t;
/* scalar placeholder */
struct
phs_st {
/* scalar placeholder EXPERIMENTAL */
SV *sv;
/* the scalar holding the value */
/* sword ftype; */
/* external OCI field type */
/* sb2 indp; */
/* null indicator */
};
void
ora_error _((SV *h,
/*Lda_Def *lda, int rc,*/
char
*what));
void
fbh_dump _((imp_fbh_t *fbh,
int
i));
void
dbd_init _((dbistate_t *dbistate));
void
dbd_preparse _((imp_sth_t *imp_sth,
char
*statement));
int
dbd_describe _((SV *h, imp_sth_t *imp_sth));
/* end */