db-lib
. More...
#include <time.h>
#include <stdarg.h>
#include <assert.h>
#include <stdio.h>
#include "tds.h"
#include "tdsthread.h"
#include "sybfront.h"
#include "sybdb.h"
#include "syberror.h"
#include "dblib.h"
#include "tdsconvert.h"
#include "replacements.h"
#include "buffering.h"
Classes | |
struct | _dblib_error_message |
struct | dblib_context |
Defines | |
#define | _DB_GETCOLINFO(fail) |
#define | SYBDBLIB 1 |
Typedefs | |
typedef struct _dblib_error_message | DBLIB_ERROR_MESSAGE |
typedef struct dblib_context | DBLIBCONTEXT |
Functions | |
static int | _db_get_server_type (int bindtype) |
int | _dblib_client_msg (DBPROCESS *dbproc, int dberr, int severity, const char *dberrstr) |
For internal use only.
| |
static int | _dbnullable (DBPROCESS *dbproc, int column) |
static char * | _dbprdate (char *timestr) |
static int | _get_printable_size (TDSCOLUMN *colinfo) |
static void | _set_null_value (BYTE *varaddr, int datatype, int maxlen) |
static void | copy_data_to_host_var (DBPROCESS *, int, const BYTE *, DBINT, int, BYTE *, DBINT, int, DBSMALLINT *) |
BYTE * | dbadata (DBPROCESS *dbproc, int computeid, int column) |
DBINT | dbadlen (DBPROCESS *dbproc, int computeid, int column) |
RETCODE | dbaltbind (DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr) |
int | dbaltcolid (DBPROCESS *dbproc, int computeid, int column) |
DBINT | dbaltlen (DBPROCESS *dbproc, int computeid, int column) |
int | dbaltop (DBPROCESS *dbproc, int computeid, int column) |
int | dbalttype (DBPROCESS *dbproc, int computeid, int column) |
DBINT | dbaltutype (DBPROCESS *dbproc, int computeid, int column) |
RETCODE | dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator) |
RETCODE | dbbind (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr) |
BYTE * | dbbylist (DBPROCESS *dbproc, int computeid, int *size) |
RETCODE | dbcancel (DBPROCESS *dbproc) |
RETCODE | dbcanquery (DBPROCESS *dbproc) |
char * | dbchange (DBPROCESS *dbproc) |
void | dbclose (DBPROCESS *dbproc) |
void | dbclrbuf (DBPROCESS *dbproc, DBINT n) |
RETCODE | dbclropt (DBPROCESS *dbproc, int option, char *param) |
RETCODE | dbcmd (DBPROCESS *dbproc, const char *cmdstring) |
RETCODE | dbcmdrow (DBPROCESS *dbproc) |
For internal use only.
| |
DBINT | dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol) |
DBINT | dbcollen (DBPROCESS *dbproc, int column) |
char * | dbcolname (DBPROCESS *dbproc, int column) |
char * | dbcolsource (DBPROCESS *dbproc, int column) |
int | dbcoltype (DBPROCESS *dbproc, int column) |
DBTYPEINFO * | dbcoltypeinfo (DBPROCESS *dbproc, int column) |
int | dbcolutype (DBPROCESS *dbproc, int column) |
DBINT | dbconvert (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen) |
DBINT | dbconvert_ps (DBPROCESS *dbproc, int srctype, BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo) |
DBINT | dbcount (DBPROCESS *dbproc) |
For internal use only.
| |
int | dbcurcmd (DBPROCESS *dbproc) |
For internal use only.
| |
DBINT | dbcurrow (DBPROCESS *dbproc) |
For internal use only.
| |
BYTE * | dbdata (DBPROCESS *dbproc, int column) |
RETCODE | dbdatecmp (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2) |
RETCODE | dbdatecrack (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime) |
DBINT | dbdatlen (DBPROCESS *dbproc, int column) |
DBBOOL | dbdead (DBPROCESS *dbproc) |
For internal use only.
| |
EHANDLEFUNC | dberrhandle (EHANDLEFUNC handler) |
void | dbexit () |
RETCODE | dbfcmd (DBPROCESS *dbproc, const char *fmt,...) |
DBINT | dbfirstrow (DBPROCESS *dbproc) |
For internal use only.
| |
void | dbfreebuf (DBPROCESS *dbproc) |
char * | dbgetchar (DBPROCESS *dbproc, int pos) |
int | dbgetmaxprocs (void) |
int | dbgetpacket (DBPROCESS *dbproc) |
RETCODE | dbgetrow (DBPROCESS *dbproc, DBINT row) |
BYTE * | dbgetuserdata (DBPROCESS *dbproc) |
DBBOOL | dbhasretstat (DBPROCESS *dbproc) |
int | dbiordesc (DBPROCESS *dbproc) |
For internal use only.
| |
int | dbiowdesc (DBPROCESS *dbproc) |
For internal use only.
| |
DBBOOL | dbisavail (DBPROCESS *dbproc) |
DBBOOL | dbisopt (DBPROCESS *dbproc, int option, char *param) |
DBINT | dblastrow (DBPROCESS *dbproc) |
For internal use only.
| |
RETCODE | dbmny4add (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum) |
int | dbmny4cmp (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2) |
RETCODE | dbmny4copy (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest) |
RETCODE | dbmny4divide (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *quotient) |
RETCODE | dbmny4minus (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest) |
RETCODE | dbmny4mul (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *prod) |
RETCODE | dbmny4sub (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff) |
RETCODE | dbmny4zero (DBPROCESS *dbproc, DBMONEY4 *dest) |
RETCODE | dbmnyadd (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *sum) |
int | dbmnycmp (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2) |
RETCODE | dbmnycopy (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest) |
RETCODE | dbmnydec (DBPROCESS *dbproc, DBMONEY *amount) |
RETCODE | dbmnydivide (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *quotient) |
RETCODE | dbmnydown (DBPROCESS *dbproc, DBMONEY *amount, int divisor, int *remainder) |
RETCODE | dbmnyinc (DBPROCESS *dbproc, DBMONEY *amount) |
RETCODE | dbmnyinit (DBPROCESS *dbproc, DBMONEY *amount, int trim, DBBOOL *negative) |
RETCODE | dbmnymaxneg (DBPROCESS *dbproc, DBMONEY *amount) |
RETCODE | dbmnymaxpos (DBPROCESS *dbproc, DBMONEY *amount) |
RETCODE | dbmnyminus (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest) |
RETCODE | dbmnymul (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *prod) |
RETCODE | dbmnyndigit (DBPROCESS *dbproc, DBMONEY *mnyptr, DBCHAR *digit, DBBOOL *zero) |
RETCODE | dbmnyscale (DBPROCESS *dbproc, DBMONEY *amount, int multiplier, int addend) |
RETCODE | dbmnysub (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *difference) |
RETCODE | dbmnyzero (DBPROCESS *dbproc, DBMONEY *dest) |
const char * | dbmonthname (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform) |
RETCODE | dbmorecmds (DBPROCESS *dbproc) |
RETCODE | dbmoretext (DBPROCESS *dbproc, DBINT size, BYTE *text) |
MHANDLEFUNC | dbmsghandle (MHANDLEFUNC handler) |
char * | dbname (DBPROCESS *dbproc) |
RETCODE | dbnextrow (DBPROCESS *dbproc) |
RETCODE | dbnullbind (DBPROCESS *dbproc, int column, DBINT *indicator) |
int | dbnumalts (DBPROCESS *dbproc, int computeid) |
int | dbnumcols (DBPROCESS *dbproc) |
int | dbnumcompute (DBPROCESS *dbproc) |
int | dbnumrets (DBPROCESS *dbproc) |
int | dbperror (DBPROCESS *dbproc, DBINT msgno, int errnum) |
For internal use only.
| |
RETCODE | dbpoll (DBPROCESS *dbproc, long milliseconds, DBPROCESS **ready_dbproc, int *return_reason) |
void | dbprhead (DBPROCESS *dbproc) |
RETCODE | dbprrow (DBPROCESS *dbproc) |
const char * | dbprtype (int token) |
STATUS | dbreadtext (DBPROCESS *dbproc, void *buf, DBINT bufsize) |
void | dbrecftos (char *filename) |
RETCODE | dbregexec (DBPROCESS *dbproc, DBUSMALLINT options) |
RETCODE | dbreginit (DBPROCESS *dbproc, DBCHAR *procedure_name, DBSMALLINT namelen) |
RETCODE | dbreglist (DBPROCESS *dbproc) |
RETCODE | dbregparam (DBPROCESS *dbproc, char *param_name, int type, DBINT datalen, BYTE *data) |
RETCODE | dbresults (DBPROCESS *dbproc) |
BYTE * | dbretdata (DBPROCESS *dbproc, int retnum) |
int | dbretlen (DBPROCESS *dbproc, int retnum) |
char * | dbretname (DBPROCESS *dbproc, int retnum) |
DBINT | dbretstatus (DBPROCESS *dbproc) |
int | dbrettype (DBPROCESS *dbproc, int retnum) |
RETCODE | dbrows (DBPROCESS *dbproc) |
For internal use only.
| |
STATUS | dbrowtype (DBPROCESS *dbproc) |
For internal use only.
| |
void | dbrpwclr (LOGINREC *login) |
RETCODE | dbrpwset (LOGINREC *login, char *srvname, char *password, int pwlen) |
RETCODE | dbsafestr (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype) |
char * | dbservcharset (DBPROCESS *dbproc) |
void | dbsetavail (DBPROCESS *dbproc) |
For internal use only.
| |
RETCODE | dbsetdefcharset (char *charset) |
RETCODE | dbsetdeflang (char *language) |
void | dbsetifile (char *filename) |
void | dbsetinterrupt (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr) |
RETCODE | dbsetlogintime (int seconds) |
RETCODE | dbsetmaxprocs (int maxprocs) |
RETCODE | dbsetopt (DBPROCESS *dbproc, int option, const char *char_param, int int_param) |
RETCODE | dbsetrow (DBPROCESS *dbproc, DBINT row) |
RETCODE | dbsettime (int seconds) |
void | dbsetuserdata (DBPROCESS *dbproc, BYTE *ptr) |
RETCODE | dbsetversion (DBINT version) |
int | dbspid (DBPROCESS *dbproc) |
RETCODE | dbspr1row (DBPROCESS *dbproc, char *buffer, DBINT buf_len) |
DBINT | dbspr1rowlen (DBPROCESS *dbproc) |
RETCODE | dbsprhead (DBPROCESS *dbproc, char *buffer, DBINT buf_len) |
RETCODE | dbsprline (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char) |
RETCODE | dbsqlexec (DBPROCESS *dbproc) |
RETCODE | dbsqlok (DBPROCESS *dbproc) |
RETCODE | dbsqlsend (DBPROCESS *dbproc) |
int | dbstrbuild (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...) |
RETCODE | dbstrcpy (DBPROCESS *dbproc, int start, int numbytes, char *dest) |
int | dbstrlen (DBPROCESS *dbproc) |
DBINT | dbtablecolinfo (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol) |
int | dbtds (DBPROCESS *dbproc) |
For internal use only.
| |
DBBINARY * | dbtxptr (DBPROCESS *dbproc, int column) |
DBBINARY * | dbtxtimestamp (DBPROCESS *dbproc, int column) |
RETCODE | dbuse (DBPROCESS *dbproc, char *name) |
DBINT | dbvarylen (DBPROCESS *dbproc, int column) |
const char * | dbversion () |
DBBOOL | dbwillconvert (int srctype, int desttype) |
RETCODE | dbwritetext (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text) |
static void | free_linked_dbopt (DBOPTION *dbopt) |
static DBOPTION * | init_dboptions (void) |
static | TDS_MUTEX_DECLARE (dblib_mutex) |
static char * | tds_prdatatype (TDS_SERVER_TYPE datatype_token) |
TDS_RCSID (var,"$Id: dblib.c,v 1.244.2.1 2006/01/31 08:45:20 freddy77 Exp $") | |
DBPROCESS * | tdsdbopen (LOGINREC *login, char *server, int msdblib) |
For internal use only.
| |
Variables | |
EHANDLEFUNC | _dblib_err_handler = NULL |
MHANDLEFUNC | _dblib_msg_handler = NULL |
static const DBLIB_ERROR_MESSAGE | dblib_error_messages [] |
static int | errno = 0 |
static DBLIBCONTEXT | g_dblib_ctx |
static int | g_dblib_version |
db-lib
.
#define _DB_GETCOLINFO | ( | fail | ) |
Value:
if (!dbproc || !dbproc->tds_socket || !(resinfo=dbproc->tds_socket->res_info)) \ return (fail); \ \ if (column < 1 || column > resinfo->num_cols) \ return (fail); \ colinfo = resinfo->columns[column - 1];
DBINT dbcolinfo | ( | DBPROCESS * | dbproc, | |
CI_TYPE | type, | |||
DBINT | column, | |||
DBINT | computeid, | |||
DBCOL * | pdbcol | |||
) |
Get a bunch of column attributes with a single call (Microsoft-compatibility feature).
dbproc | contains all information needed by db-lib to manage communications with the server. | |
type | must be CI_REGULAR or CI_ALTERNATE (CI_CURSOR is defined by the vendor, but is not yet implemented). | |
column | Nth in the result set, starting from 1. | |
computeid | (ignored) | |
pdbcol | address of structure to be populated by this function. |