sybdb.h
上传用户:bilang918
上传日期:2010-03-24
资源大小:558k
文件大小:143k
- /*
- ** Sybase DB-LIBRARY
- ** Confidential Property of Sybase, Inc.
- ** (c) Copyright Sybase, Inc. 1988 to 1996.
- ** All rights reserved.
- **
- **
- ** Use, duplication, or disclosure by the Government
- ** is subject to restrictions as set forth in subparagraph (c) (1) (ii)
- ** of the Rights in Technical Data and Computer Software clause
- ** at DFARS 52.227-7013. Sybase, Inc. 6475 Christie Avenue, Emeryville,
- ** CA 94608.
- **
- ** History
- **
- ** 001 12JAN94 Added prototypes for the functions refered thru
- ** function pointer to make DBLIB ANSI compliant. sureshk
- ** 002 08Jul94 Fixed all the prototypes to make it consistant with
- ** all other public headers nagar
- ** 003 11AUG94 Added db_filmode field in DBPROCESS cchen
- ** 004 30MAY96 Added DCL interfaces support to dblib cchen
- */
- #ifndef __sybdb__
- #define __sybdb__
- /*
- ** Include stdio.h if it hasn't already been done
- */
- #ifndef FILE
- #include <stdio.h>
- /*
- ** If NULL has not been defined by stdio.h
- ** make sure it has a valid value.
- */
- #ifndef NULL
- #define NULL 0
- #endif /* NULL */
- #endif /* FILE */
- /*
- ** Indicate use of Macintosh compiler
- */
- #if defined(applec) || defined(powerc) || defined(__MWERKS__) || defined(THINK_C)
- #define SYB_MAC 1
- #endif /* defined(applec) || defined(powerc) || defined(__MWERKS__) || defined(THINK_C) */
- #include <syblogin.h>
- /*
- ** The following datatype definitions are included here to avoid including
- ** tds.h. This will help in keeing the number of released header files
- ** to a minimum.
- */
- #define SYBVOID (BYTE)0x1F
- #define SYBBINARY (BYTE)0x2D
- #define SYBBIT (BYTE)0x32
- #define SYBCHAR (BYTE)0x2F
- #define SYBDATETIME4 (BYTE)0x3A
- #define SYBDATETIME (BYTE)0x3D
- #define SYBDATETIMN (BYTE)0x6F
- #define SYBDECIMAL (BYTE)0x6A
- #define SYBFLT8 (BYTE)0x3E
- #define SYBFLTN (BYTE)0x6D
- #define SYBREAL (BYTE)0x3B
- #define SYBIMAGE (BYTE)0x22
- #define SYBINT1 (BYTE)0x30
- #define SYBINT2 (BYTE)0x34
- #define SYBINT4 (BYTE)0x38
- #define SYBINTN (BYTE)0x26
- #define SYBLONGBINARY (BYTE)0xE1
- #define SYBLONGCHAR (BYTE)0xAF
- #define SYBMONEY4 (BYTE)0x7A
- #define SYBMONEY (BYTE)0x3C
- #define SYBMONEYN (BYTE)0x6E
- #define SYBNUMERIC (BYTE)0x6C
- #define SYBTEXT (BYTE)0x23
- #define SYBVARBINARY (BYTE)0x25
- #define SYBVARCHAR (BYTE)0x27
- #define SYBSENSITIVITY (BYTE)0x67
- #define SYBBOUNDARY (BYTE)0x68
- /*
- ** The following tokens can be returned by dbaltop().
- */
- #define SYBAOPCNT (BYTE)0x4b
- #define SYBAOPSUM (BYTE)0x4d
- #define SYBAOPAVG (BYTE)0x4f
- #define SYBAOPMIN (BYTE)0x51
- #define SYBAOPMAX (BYTE)0x52
- /* Additions for 10.0 front ends, taken from the now obsolete sybdbtoken.h */
- #define SYBAOPCNTU 0x4c
- #define SYBAOPSUMU 0x4e
- #define SYBAOPAVGU 0x50
- #define SYBTLEND 0x01
- #define SYBQLEND 0x02
- #define SYBVARCHNE 0x1e
- #define SYBDBAID 0x05
- #define SYBDBCLOSE 0x13
- #ifdef ABS
- #undef ABS
- #endif /* ABS */
- #define ABS(a) ((a) > 0 ? (a) : -(a))
- /*
- ** Status code for dbnextrow() and dbgetrow().
- ** Return of > 0 indicates ALTROW.
- ** FAIL is another possible return.
- */
- #define MORE_ROWS -1
- #define NO_MORE_ROWS -2
- #define REG_ROW MORE_ROWS
- #define BUF_FULL -3
- /*
- ** Return code for dbreadtext().
- */
- #define NO_MORE_PARAMS -4
- /*
- ** Status code for dbresults(). Possible return values are
- ** SUCCEED, FAIL, and NO_MORE_RESULTS.
- */
- #define NO_MORE_RESULTS 2
- /*
- ** Return code for message-handlers. Indicates whether or not the handler
- ** wants DB-LIBRARY to buffer the current Server message for later use
- ** by the program.
- */
- #define DBSAVE 1
- #define DBNOSAVE 0
- #define DBNOERR -1
- /*
- ** Default size of row buffer. This is what people get if they do
- ** a dbsetopt(dbproc, DBBUFFER, 0).
- */
- #define DBBUFSIZE 1000
- /* The size of a SYBTEXT timestamp, in bytes. This timestamp is not to be
- * confused with a browse-mode timestamp.
- */
- #define DBTXTSLEN 8
- /* The size of a text-pointer, in bytes. */
- #if !VMS
- #define DBTXPLEN ((DBTINYINT)16)
- #else
- #define DBTXPLEN ((unsigned char)16)
- #endif
- #define DBMAXNAME 30 /* Less like to collide with users' names
- ** than "MAXNAME".
- */
- #define MAXNAME 30 /* Still here, so old programs won't
- * break yet.
- */
- /* The following 2 defines are 1.0 Secure Server related. They are only here
- ** so that old applications are not broken.
- */
- #define MINSECLEVEL 1
- #define MAXSECLEVEL 16
- #define DBMAXCOLNAME 30
- #define DBMAXBYLIST 16
- #define DBDATE_YY 0 /* year 1753 - 9999 */
- #define DBDATE_QQ 1 /* quarter 1 - 4 */
- #define DBDATE_MM 2 /* month January - December */
- #define DBDATE_DW 3 /* weekday Monday - Sunday */
- #define DBDATE_DD 4 /* day 1 - 31 */
- #define DBDATE_DY 5 /* dayofyear 1 - 366 */
- #define DBDATE_HH 6 /* hour 0 - 23 */
- #define DBDATE_MI 7 /* minute 0 - 59 */
- #define DBDATE_SS 8 /* second 0 - 59 */
- #define DBDATE_MS 9 /* millisecond 0 - 999 */
- #define DBDATE_WK 10 /* week 1 - 54 (for leap years) */
- #define DBDATE_CY 11
- #define DBDATE_CW 12
- #define DBDATE_CD 13
- /* maximum printing lengths for fixed-length data */
- #define PRINT4 11
- #define PRINT2 6
- #define PRINT1 3
- #define PRFLT8 20
- #define PRFLT4 20
- #define PRMONEY 24
- #define PRMONEY4 24
- #define PRBIT 1
- #define PROLDDATETIME 20 /* for backward compatibility */
- #define PRDATETIME 26
- #define PRDATETIME4 26
- #define PRLDATETIME 30 /* includes milliseconds */
- #define PRNUMERIC (CS_MAX_PREC + 2)
- #define PRDECIMAL PRNUMERIC
- /* constant definitions for dbsafestr()'s quotetype parameter */
- #define DBSINGLE 0
- #define DBDOUBLE 1
- #define DBBOTH 2
- /* status values returned by dbxlate() */
- #define DBXLATE_XOK 0
- #define DBXLATE_XOF 1
- #define DBXLATE_XPAT 2
- /* type values for dbsechandle() */
- #define DBENCRYPT 0
- #define DBLABELS 1
- #define NOBIND -1
- #define TINYBIND 1
- #define SMALLBIND 2
- #define INTBIND 3
- #define CHARBIND 4
- #define TEXTBIND 5
- #define BINARYBIND 6
- #define ARRAYBIND 7
- #define BITBIND 8
- #define DATETIMEBIND 9
- #define MONEYBIND 10
- #define FLT8BIND 11
- #define STRINGBIND 12
- #define NTBSTRINGBIND 13
- #define VARYCHARBIND 14
- #define VARYBINBIND 15
- #define SMALLDATETIMEBIND 16
- #define SMALLMONEYBIND 17
- #define REALBIND 18
- #define NUMERICBIND 19
- #define DECIMALBIND 20
- #define SENSITIVITYBIND 21
- #define BOUNDARYBIND 22
- #if VOS
- #define FIXEDBIND 23 /*kvk589*/
- #define PACKEDBIND 24 /*kvk589*/
- #endif
- #define MAXBIND BOUNDARYBIND
- /*
- ** OFFSETS DEFINITIONS
- **
- ** These are a subset of the token values for offset information.
- ** These defines come from y.tab.h
- **
- */
- #define _SELECT 365
- #define _EXECUTE 330
- #define _FROM 335
- #define _ORDER 357
- #define _COMPUTE 313
- #define _TABLE 371
- #define _PROCEDURE 362
- #define _STATEMENT 459
- #define _PARAM 452
- /* end y.tab.h */
- /* DB-LIBRARY minor error numbers */
- #define SYBESYNC 20001 /* Read attempted while out of synchronization
- * with SQL Server.
- */
- #define SYBEFCON 20002 /* SQL Server connection failed. */
- #define SYBETIME 20003 /* SQL Server connection timed out. */
- #define SYBEREAD 20004 /* Read from SQL Server failed. */
- #define SYBEBUFL 20005 /* DB-LIBRARY internal error - send buffer
- * length corrupted.
- */
- #define SYBEWRIT 20006 /* Write to SQL Server failed. */
- #define SYBEVMS 20007 /* Sendflush: VMS I/O error. */
- #define SYBESOCK 20008 /* Unable to open socket */
- #define SYBECONN 20009 /* Unable to connect socket -- SQL Server is
- * unavailable or does not exist.
- */
- #define SYBEMEM 20010 /* Unable to allocate sufficient memory */
- #define SYBEDBPS 20011 /* Maximum number of DBPROCESSes
- * already allocated.
- */
- #define SYBEINTF 20012 /* Server name not found in interface file */
- #define SYBEUHST 20013 /* Unknown host machine name */
- #define SYBEPWD 20014 /* Incorrect password. */
- #define SYBEOPIN 20015 /* Could not open interface file. */
- #define SYBEINLN 20016 /* Interface file: unexpected end-of-line. */
- #define SYBESEOF 20017 /* Unexpected EOF from SQL Server. */
- #define SYBESMSG 20018 /* General SQL Server error: Check messages
- * from the SQL Server.
- */
- #define SYBERPND 20019 /* Attempt to initiate a new SQL Server
- * operation with results pending.
- */
- #define SYBEBTOK 20020 /* Bad token from SQL Server: Data-stream
- * processing out of sync.
- */
- #define SYBEITIM 20021 /* Illegal timeout value specified. */
- #define SYBEOOB 20022 /* Error in sending out-of-band data to
- * SQL Server.
- */
- #define SYBEBTYP 20023 /* Unknown bind type passed to DB-LIBRARY
- * function.
- */
- #define SYBEBNCR 20024 /* Attempt to bind user variable to a
- * non-existent compute row.
- */
- #define SYBEIICL 20025 /* Illegal integer column length returned by
- * SQL Server. Legal integer lengths are 1, 2,
- * and 4 bytes.
- */
- #define SYBECNOR 20026 /* Column number out of range. */
- #define SYBENPRM 20027 /* NULL parameter not allowed for this
- * dboption.
- */
- #define SYBEUVDT 20028 /* Unknown variable-length datatype encountered.
- */
- #define SYBEUFDT 20029 /* Unknown fixed-length datatype encountered. */
- #define SYBEWAID 20030 /* DB-LIBRARY internal error: ALTFMT following
- * ALTNAME has wrong id.
- */
- #define SYBECDNS 20031 /* Datastream indicates that a compute column is
- * derived from a non-existent select-list
- * member.
- */
- #define SYBEABNC 20032 /* Attempt to bind to a non-existent column. */
- #define SYBEABMT 20033 /* User attempted a dbbind() with mismatched
- * column and variable types.
- */
- #define SYBEABNP 20034 /* Attempt to bind using NULL pointers. */
- #define SYBEAAMT 20035 /* User attempted a dbaltbind() with mismatched
- * column and variable types.
- */
- #define SYBENXID 20036 /* The Server did not grant us a
- * distributed-transaction ID.
- */
- #define SYBERXID 20037 /* The Server did not recognize our
- * distributed-transaction ID.
- */
- #define SYBEICN 20038 /* Invalid computeid or compute column number.
- */
- #define SYBENMOB 20039 /* No such member of 'order by' clause. */
- #define SYBEAPUT 20040 /* Attempt to print unknown token. */
- #define SYBEASNL 20041 /* Attempt to set fields in a null loginrec. */
- #define SYBENTLL 20042 /* Name too long for loginrec field. */
- #define SYBEASUL 20043 /* Attempt to set unknown loginrec field. */
- #define SYBERDNR 20044 /* Attempt to retrieve data from a non-existent
- * row.
- */
- #define SYBENSIP 20045 /* Negative starting index passed to dbstrcpy().
- */
- #define SYBEABNV 20046 /* Attempt to bind to a NULL program variable.
- */
- #define SYBEDDNE 20047 /* DBPROCESS is dead or not enabled. */
- #define SYBECUFL 20048 /* Data-conversion resulted in underflow. */
- #define SYBECOFL 20049 /* Data-conversion resulted in overflow. */
- #define SYBECSYN 20050 /* Attempt to convert data stopped by syntax
- * error in source field.
- */
- #define SYBECLPR 20051 /* Data-conversion resulted in loss of
- * precision.
- */
- #define SYBECNOV 20052 /* Attempt to set variable to NULL resulted
- * in overflow.
- */
- #define SYBERDCN 20053 /* Requested data-conversion does not exist. */
- #define SYBESFOV 20054 /* dbsafestr() overflowed its destination
- * buffer.
- */
- #define SYBEUNT 20055 /* Unknown network type found in
- * interface file.
- */
- #define SYBECLOS 20056 /* Error in closing network connection. */
- #define SYBEUAVE 20057 /* Unable to allocate VMS event flag. */
- #define SYBEUSCT 20058 /* Unable to set communications timer. */
- #define SYBEEQVA 20059 /* Error in queueing VMS AST routine. */
- #define SYBEUDTY 20060 /* Unknown datatype encountered. */
- #define SYBETSIT 20061 /* Attempt to call dbtsput() with an
- * invalid timestamp.
- */
- #define SYBEAUTN 20062 /* Attempt to update the timestamp of a table
- * which has no timestamp column.
- */
- #define SYBEBDIO 20063 /* Bad bulk-copy direction. Must be either
- * IN or OUT.
- */
- #define SYBEBCNT 20064 /* Attempt to use Bulk Copy with a non-existent
- * Server table.
- */
- #define SYBEIFNB 20065 /* Illegal field number passed to bcp_control().
- */
- #define SYBETTS 20066 /* The table which bulk-copy is attempting to
- * copy to a host-file is shorter than the
- * number of rows which bulk-copy was instructed
- * to skip.
- */
- #define SYBEKBCO 20067 /* 1000 rows successfully bulk-copied to
- * host-file.
- */
- #define SYBEBBCI 20068 /* Batch successfully bulk-copied to SQL Server.
- */
- #define SYBEKBCI 20069 /* Bcp: 1000 rows sent to SQL Server. */
- #define SYBEBCRE 20070 /* I/O error while reading bcp data-file. */
- #define SYBETPTN 20071 /* Syntax error: only two periods are permitted
- * in table names.
- */
- #define SYBEBCWE 20072 /* I/O error while writing bcp data-file. */
- #define SYBEBCNN 20073 /* Attempt to bulk-copy a NULL value into
- * Server column %d, which does not accept
- * NULL values.
- */
- #define SYBEBCOR 20074 /* Attempt to bulk-copy an oversized row to the
- * SQL Server.
- */
- #define SYBEBCIS 20075 /* Attempt to bulk-copy an illegally-sized
- * column value to the SQL Server.
- */
- #define SYBEBCPI 20076 /* bcp_init() must be called before any other
- * bcp routines.
- */
- #define SYBEBCPN 20077 /* bcp_bind(), bcp_collen(), bcp_colptr(),
- * bcp_moretext() and bcp_sendrow() may be used
- * only after bcp_init() has been called with
- * the copy direction set to DB_IN.
- */
- #define SYBEBCPB 20078 /* bcp_bind(), bcp_moretext() and bcp_sendrow()
- * may NOT be used after bcp_init() has been
- * passed a non-NULL input file name.
- */
- #define SYBEVDPT 20079 /* For bulk copy, all variable-length data
- * must have either a length-prefix or a
- * terminator specified.
- */
- #define SYBEBIVI 20080 /* bcp_columns(), bcp_colfmt() and
- * bcp_colfmt_ps() may be used only after
- * bcp_init() has been passed a valid input
- * file.
- */
- #define SYBEBCBC 20081 /* bcp_columns() must be called before
- * bcp_colfmt() and bcp_colfmt_ps().
- */
- #define SYBEBCFO 20082 /* Bcp host-files must contain at least one
- * column.
- */
- #define SYBEBCVH 20083 /* bcp_exec() may be called only after
- * bcp_init() has been passed a valid host file.
- */
- #define SYBEBCUO 20084 /* Bcp: Unable to open host data-file. */
- #define SYBEBCUC 20085 /* Bcp: Unable to close host data-file. */
- #define SYBEBUOE 20086 /* Bcp: Unable to open error-file. */
- #define SYBEBUCE 20087 /* Bcp: Unable to close error-file. */
- #define SYBEBWEF 20088 /* I/O error while writing bcp error-file. */
- #define SYBEASTF 20089 /* VMS: Unable to setmode for control_c ast. */
- #define SYBEUACS 20090 /* VMS: Unable to assign channel to sys$command.
- */
- #define SYBEASEC 20091 /* Attempt to send an empty command buffer to
- * the SQL Server.
- */
- #define SYBETMTD 20092 /* Attempt to send too much TEXT data via the
- * dbmoretext() call.
- */
- #define SYBENTTN 20093 /* Attempt to use dbtxtsput() to put a new
- * text-timestamp into a non-existent data row.
- */
- #define SYBEDNTI 20094 /* Attempt to use dbtxtsput() to put a new
- * text-timestamp into a column whose datatype
- * is neither SYBTEXT nor SYBIMAGE.
- */
- #define SYBEBTMT 20095 /* Attempt to send too much TEXT data via the
- * bcp_moretext() call.
- */
- #define SYBEORPF 20096 /* Attempt to set remote password would
- * overflow the login-record's remote-password
- * field.
- */
- #define SYBEUVBF 20097 /* Attempt to read an unknown version of BCP
- * format-file.
- */
- #define SYBEBUOF 20098 /* Bcp: Unable to open format-file. */
- #define SYBEBUCF 20099 /* Bcp: Unable to close format-file. */
- #define SYBEBRFF 20100 /* I/O error while reading bcp format-file. */
- #define SYBEBWFF 20101 /* I/O error while writing bcp format-file. */
- #define SYBEBUDF 20102 /* Bcp: Unrecognized datatype found in
- * format-file.
- */
- #define SYBEBIHC 20103 /* Incorrect host-column number found in bcp
- * format-file.
- */
- #define SYBEBEOF 20104 /* Unexpected EOF encountered in BCP data-file.
- */
- #define SYBEBCNL 20105 /* Negative length-prefix found in BCP
- * data-file.
- */
- #define SYBEBCSI 20106 /* Host-file columns may be skipped only when
- * copying INto the Server.
- */
- #define SYBEBCIT 20107 /* It's illegal to use BCP terminators with
- * program variables other than
- * SYBCHAR, SYBBINARY, SYBTEXT, or SYBIMAGE.
- */
- #define SYBEBCSA 20108 /* The BCP hostfile '%s' contains only %ld
- * rows. Skipping all of these rows is not
- * allowed.
- */
- #define SYBENULL 20109 /* NULL DBPROCESS pointer passed to DB-Library.
- */
- #define SYBEUNAM 20110 /* Unable to get current username from
- * operating system.
- */
- #define SYBEBCRO 20111 /* The BCP hostfile '%s' contains only %ld
- * rows. It was impossible to read the
- * requested %ld rows.
- */
- #define SYBEMPLL 20112 /* Attempt to set maximum number of DBPROCESSes
- * lower than 1.
- */
- #define SYBERPIL 20113 /* It is illegal to pass -1 to dbrpcparam()
- * for the datalen of parameters which are of
- * type SYBCHAR, SYBVARCHAR, SYBBINARY, or
- * SYBVARBINARY.
- */
- #define SYBERPUL 20114 /* When passing a SYBINTN, SYBDATETIMN,
- * SYBMONEYN, or SYBFLTN parameter via
- * dbrpcparam(), it's necessary to specify
- * the parameter's maximum or actual length,
- * so that DB-Library can recognize it as
- * a SYBINT1, SYBINT2, SYBINT4,
- * SYBMONEY, or SYBMONEY4, etc.
- */
- #define SYBEUNOP 20115 /* Unknown option passed to dbsetopt(). */
- #define SYBECRNC 20116 /* The current row is not a result of compute
- * clause %d, so it is illegal to attempt to
- * extract that data from this row.
- */
- #define SYBERTCC 20117 /* dbreadtext() may not be used to receive
- * the results of a query which contains a
- * COMPUTE clause.
- */
- #define SYBERTSC 20118 /* dbreadtext() may only be used to receive
- * the results of a query which contains a
- * single result column.
- */
- #define SYBEUCRR 20119 /* Internal software error: Unknown
- * connection result reported by * dbpasswd().
- */
- #define SYBERPNA 20120 /* The RPC facility is available only when
- * using a SQL Server whose version number
- * is 4.0 or greater.
- */
- #define SYBEOPNA 20121 /* The text/image facility is available only
- * when using a SQL Server whose version number
- * is 4.0 or greater.
- */
- #define SYBEFGTL 20122 /* Bcp: Row number of the first row to be copied
- * cannot be greater than the row number for the
- * last row to be copied.
- */
- #define SYBECWLL 20123 /* Attempt to set column width less than 1.
- */
- #define SYBEUFDS 20124 /* Unrecognized format encountered in
- * dbstrbuild().
- */
- #define SYBEUCPT 20125 /* Unrecognized custom-format parameter-type
- * encountered in dbstrbuild().
- */
- #define SYBETMCF 20126 /* Attempt to install too many custom formats
- * via dbfmtinstall().
- */
- #define SYBEAICF 20127 /* Error in attempting to install custom
- * format.
- */
- #define SYBEADST 20128 /* Error in attempting to determine the size
- * of a pair of translation tables.
- */
- #define SYBEALTT 20129 /* Error in attempting to load a pair
- * of translation tables.
- */
- #define SYBEAPCT 20130 /* Error in attempting to perform a
- * character-set translation.
- */
- #define SYBEXOCI 20131 /* A character-set translation overflowed its
- * destination buffer while using bcp to copy
- * data from a host-file to the SQL Server.
- */
- #define SYBEFSHD 20132 /* Error in attempting to find the Sybase
- * home directory.
- */
- #define SYBEAOLF 20133 /* Error in attempting to open a localization
- * file.
- */
- #define SYBEARDI 20134 /* Error in attempting to read datetime
- * information from a localization file.
- */
- #define SYBEURCI 20135 /* Unable to read copyright information
- * from the dblib localization file.
- */
- #define SYBEARDL 20136 /* Error in attempting to read the dblib.loc
- * localization file.
- */
- #define SYBEURMI 20137 /* Unable to read money-format information
- * from the dblib localization file.
- */
- #define SYBEUREM 20138 /* Unable to read error mnemonic
- * from the dblib localization file.
- */
- #define SYBEURES 20139 /* Unable to read error string
- * from the dblib localization file.
- */
- #define SYBEUREI 20140 /* Unable to read error information from
- * the dblib localization file.
- */
- #define SYBEOREN 20141 /* Warning: an out-of-range error-number was
- * encountered in dblib.loc. The maximum
- * permissible error-number is defined
- * as DBERRCOUNT in sybdb.h.
- */
- #define SYBEISOI 20142 /* Invalid sort-order information found. */
- #define SYBEIDCL 20143 /* Illegal datetime column length returned by
- * DataServer. Legal datetime lengths are 4
- * and 8 bytes.
- */
- #define SYBEIMCL 20144 /* Illegal money column length returned by
- * DataServer. Legal money lengths are 4
- * and 8 bytes.
- */
- #define SYBEIFCL 20145 /* Illegal floating-point column length
- * returned by DataServer. Legal floating-point
- * lengths are 4 and 8 bytes.
- */
- #define SYBEUTDS 20146 /* Unrecognized TDS version received from
- * SQL Server.
- */
- #define SYBEBUFF 20147 /* Bcp: Unable to create format-file. */
- #define SYBEACNV 20148 /* Attemp to do conversion with NULL destination
- * variable.
- */
- #define SYBEDPOR 20149 /* Out-of-range datepart constant. */
- #define SYBENDC 20150 /* Cannot have negative component in date
- ** in numeric form.
- */
- #define SYBEMVOR 20151 /* Month values must be between 1 and 12. */
- #define SYBEDVOR 20152 /* Day values must be between 1 and 7. */
- #define SYBENBVP 20153 /* Cannot pass dbsetnull() a NULL bindval
- ** pointer.
- */
- #define SYBESPID 20154 /* Called dbspid() with a NULL dbproc. */
- #define SYBENDTP 20155 /* Called dbdatecrack() with a NULL datetime
- ** parameter.
- */
- #define SYBEXTN 20156 /* The xlt_todisp and xlt_tosrv parameters
- ** to dbfree_xlate() were NULL.
- */
- #define SYBEXTDN 20157 /* Warning: the xlt_todisp parameter to
- ** dbfree_xlate() was NULL. The space
- ** associated with the xlt_tosrv parameter
- ** has been freed.
- */
- #define SYBEXTSN 20158 /* Warning: the xlt_tosrv parameter to
- ** dbfree_xlate() was NULL. The space
- ** associated with the xlt_todisp parameter
- ** has been freed.
- */
- #define SYBENUM 20159 /* Incorrect number of arguments given
- ** to DB-Library.
- */
- #define SYBETYPE 20160 /* Invalid argument type given to DB-Library. */
- #define SYBEGENOS 20161 /* General Operating System Error.*/
- #define SYBEPAGE 20162 /* wrong resource type or length given for
- ** dbpage() operation.
- */
- #define SYBEOPTNO 20163 /* Option is not allowed or is unreconized*/
- #define SYBEETD 20164 /*"Failure to send the expected amount of
- ** TEXT or IMAGE data via dbmoretext().
- */
- #define SYBERTYPE 20165 /* Invalid resource type given to DB-Library. */
- #define SYBERFILE 20166 /* "Can not open resource file." */
- #define SYBEFMODE 20167 /* Read/Write/Append mode denied on file.*/
- #define SYBESLCT 20168 /* Could not select or copy field specified */
- #define SYBEZTXT 20169 /* Attempt to send zero length TEXT or
- ** IMAGE to dataserver via dbwritetext().
- */
- #define SYBENTST 20170 /* The file being opened must be a stream_lf.
- */
- #define SYBEOSSL 20171 /* Operating system login level not in range
- * of Secure SQL Server
- */
- #define SYBEESSL 20172 /* Login security level entered does not agree
- * with operating system level
- */
- #define SYBENLNL 20173 /* Program not linked with specified
- ** network library.
- */
- #define SYBENHAN 20174 /* called dbrecvpassthru() with a NULL
- ** handler parameter.
- */
- #define SYBENBUF 20175 /* called dbsendpassthru() with a NULL
- ** buf pointer.
- */
- #define SYBENULP 20176 /* Called %s with a NULL %s parameter.
- */
- #define SYBENOTI 20177 /* No event handler installed. */
- #define SYBEEVOP 20178 /* Called dbregwatch() with a bad
- ** options parameter.
- */
- #define SYBENEHA 20179 /* Called dbreghandle() with a NULL
- ** handler parameter.
- */
- #define SYBETRAN 20180 /* DBPROCESS is being used for another
- ** transaction.
- */
- #define SYBEEVST 20181 /* Must initiate a transaction before
- ** calling dbregparam().
- */
- #define SYBEEINI 20182 /* Must call dbreginit() before
- ** dbregraise().
- */
- #define SYBEECRT 20183 /* Must call dbregdefine() before
- ** dbregcreate().
- */
- #define SYBEECAN 20184 /* Attempted to cancel unrequested
- ** event notification.
- */
- #define SYBEEUNR 20185 /* Unsolicited event notification received.
- */
- #define SYBERPCS 20186 /* Must call dbrpcinit() before dbrpcparam().
- */
- #define SYBETPAR 20187 /* No SYBTEXT or SYBIMAGE parameters were
- ** defined.
- */
- #define SYBETEXS 20188 /* Called dbmoretext() with a bad size
- ** parameter.
- */
- #define SYBETRAC 20189 /* Attempted to turn off a trace flag
- ** that was not on.
- */
- #define SYBETRAS 20190 /* DB-Library internal error - trace
- ** structure not found.
- */
- #define SYBEPRTF 20191 /* dbtracestring() may only be called
- ** from a printfunc().
- */
- #define SYBETRSN 20192 /* Bad numbytes parameter passed to
- ** dbtracestring().
- */
- #define SYBEBPKS 20193 /* In DBSETLPACKET(), the packet size parameter
- ** must be between 0 and 999999.
- */
- #define SYBEIPV 20194 /* %1! is an illegal value for the %2!
- ** parameter of %3!.
- */
- #define SYBEMOV 20195 /* Money arithmetic resulted in overflow in
- ** function %1!.
- */
- #define SYBEDIVZ 20196 /* Attempt to divide by $0.00 in function
- ** %1!.
- */
- #define SYBEASTL 20197 /* Synchronous I/O attempted at AST level.
- */
- #define SYBESEFA 20198 /* DBSETNOTIFS cannot be called if
- ** connections are present.
- */
- #define SYBEPOLL 20199 /* Only one dbpoll() can be active at a
- ** time.
- */
- #define SYBENOEV 20200 /* dbpoll() cannot be called if registered
- ** procedure notifications have been disabled.
- */
- #define SYBEBADPK 20201 /* Packet size of %1! not supported. --
- ** size of %2! used instead.
- */
- #define SYBESECURE 20202 /* Secure Server function not supported in
- ** this version.
- */
- #define SYBECAP 20203 /* DB-Library capabilities not accepted by
- ** the Server.
- */
- #define SYBEFUNC 20204 /* Functionality not supported at the specified
- ** version level.
- */
- #define SYBERESP 20205 /* Response function address passed to
- ** dbresponse() must be non-NULL.
- */
- #define SYBEIVERS 20206 /* Illegal version level specified. */
- #define SYBEONCE 20207 /* Function can be called only once. */
- #define SYBERPNULL 20208 /* value parameter for dbprcparam() can be
- ** NULL, only if the datalen parameter is 0
- */
- #define SYBERPTXTIM 20209 /* RPC parameters cannot be of type Text/Image.
- */
- #define SYBENEG 20210 /* Negotiated login attempt failed. */
- #define SYBELBLEN 20211 /* Security labels should be less than 256
- ** characters long.
- */
- #define SYBEUMSG 20212 /* Unknown message-id in MSG datastream. */
- #define SYBECAPTYP 20213 /* Unexpected capability type in CAPABILITY
- ** datastream.
- */
- #define SYBEBNUM 20214 /* Bad numbytes parameter passed to dbstrcpy()
- */
- #define SYBEBBL 20215 /* Bad bindlen parameter passed to dbsetnull()
- */
- #define SYBEBPREC 20216 /* Illegal precision specified */
- #define SYBEBSCALE 20217 /* Illegal scale specified */
- #define SYBECDOMAIN 20218 /* Source field value is not within the domain
- ** of legal values.
- */
- #define SYBECINTERNAL 20219 /* Internal Conversion error. */
- #define SYBEBTYPSRV 20220 /* Datatype is not supported by the server. */
- #define SYBEBCSET 20221 /* Unknown character-set encountered." */
- #define SYBEFENC 20222 /* Password Encryption failed." */
- #define SYBEFRES 20223 /* Challenge-Response function failed.", */
- #define SYBEISRVPREC 20224 /* Illegal precision value returned by the
- ** server.
- */
- #define SYBEISRVSCL 20225 /* Illegal scale value returned by the server.
- */
- #define SYBEINUMCL 20226 /* Invalid numeric column length returned by the
- ** server.
- */
- #define SYBEIDECCL 20227 /* Invalid decimal column length returned by the
- ** server.
- */
- #define SYBEBCMTXT 20228 /* bcp_moretext() may be used only when there
- ** is at least one text or image column in the
- ** server table.
- */
- #define SYBEBCPREC 20229 /* Column %1!: Illegal precision value
- ** encountered.
- */
- #define SYBEBCBNPR 20230 /* bcp_bind(): if varaddr is NULL, prefixlen
- ** must be 0 and no terminator should be
- ** specified.
- */
- #define SYBEBCBNTYP 20231 /* bcp_bind(): if varaddr is NULL and varlen
- ** greater than 0, the table column type must be
- ** SYBTEXT or SYBIMAGE and the program variable
- ** type must be SYBTEXT, SYBCHAR, SYBIMAGE or
- ** SYBBINARY.
- */
- #define SYBEBCSNTYP 20232 /* column number %1!: if varaddr is NULL and
- ** varlen greater than 0, the table column type
- ** must be SYBTEXT or SYBIMAGE and the program
- ** variable type must be SYBTEXT, SYBCHAR,
- ** SYBIMAGE or SYBBINARY.
- */
- #define SYBEBCPCTYP 20233 /* bcp_colfmt(): If table_colnum is 0,
- ** host_type cannot be 0.
- */
- #define SYBEBCVLEN 20234 /* varlen should be greater than or equal to -1.
- */
- #define SYBEBCHLEN 20235 /* host_collen should be greater than or equal
- ** to -1.
- */
- #define SYBEBCBPREF 20236 /* Illegal prefix length. Legal values are 0, 1,
- ** 2 or 4.
- */
- #define SYBEBCPREF 20237 /* Illegal prefix length. Legal values are -1,
- ** 0, 1, 2 or 4.
- */
- #define SYBEBCITBNM 20238 /* bcp_init(): tblname parameter cannot be NULL.
- */
- #define SYBEBCITBLEN 20239 /* bcp_init(): tblname parameter is too long. */
- #define SYBEBCSNDROW 20240 /* bcp_sendrow() may NOT be called unless all
- ** text data for the previous row has been sent
- ** using bcp_moretext().
- */
- #define SYBEBPROCOL 20241 /* bcp protocol error: returned column count
- ** differs from the actual number of columns
- ** received.
- */
- #define SYBEBPRODEF 20242 /* bcp protocol error: expected default
- ** information and got none.
- */
- #define SYBEBPRONUMDEF 20243 /* bcp protocol error: expected number of
- ** defaults differs from the actual number of
- ** defaults received.
- */
- #define SYBEBPRODEFID 20244 /* bcp protocol error: default column id and
- ** actual column id are not same
- */
- #define SYBEBPRONODEF 20245 /* bcp protocol error: default value received
- ** for column that does not have default.
- */
- #define SYBEBPRODEFTYP 20246 /* bcp protocol error: default value datatype
- ** differs from column datatype.
- */
- #define SYBEBPROEXTDEF 20247 /* bcp protocol error: more than one row of
- ** default information received.
- */
- #define SYBEBPROEXTRES 20248 /* bcp protocol error: unexpected set of results
- ** received.
- */
- #define SYBEBPROBADDEF 20249 /* bcp protocol error: illegal default column
- ** id received.
- */
- #define SYBEBPROBADTYP 20250 /* bcp protocol error: unknown column datatype.
- */
- #define SYBEBPROBADLEN 20251 /* bcp protocol error: illegal datatype length
- ** received.
- */
- #define SYBEBPROBADPREC 20252 /* bcp protocol error: illegal precision value
- ** received.
- */
- #define SYBEBPROBADSCL 20253 /* bcp protocol error: illegal scale value
- ** received.
- */
- #define SYBEBADTYPE 20254 /* Illegal value for type parameter
- ** given to %1!.
- */
- #define SYBECRSNORES 20255 /* Cursor statement generated no results. */
- #define SYBECRSNOIND 20256 /* One of the tables involved in the cursor
- * statement does not have a unique index. */
- #define SYBECRSVIEW 20257 /* A view cannot be joined with another table
- * or a view in a cursor statement.
- */
- #define SYBECRSVIIND 20258 /* The view used in the cursor statement does
- * not include all the unique index columns of
- * the underlying tables.
- */
- #define SYBECRSORD 20259 /* Only fully keyset driven cursors can have
- * 'order by', ' group by', or 'having' phrases.
- */
- #define SYBECRSBUFR 20260 /* Row buffering should not be turned on when
- * using cursor APIs.
- */
- #define SYBECRSNOFREE 20261 /* The DBNOAUTOFREE option should not be
- * turned on when using cursor APIs.
- */
- #define SYBECRSDIS 20262 /* Cursor statement contains one of the
- * disallowed phrases 'compute', 'union',
- * 'for browse', or 'select into'.
- */
- #define SYBECRSAGR 20263 /* Aggregate functions are not allowed in a
- * cursor statement.
- */
- #define SYBECRSFRAND 20264 /* Fetch types RANDOM and RELATIVE can only be
- * used within the keyset of keyset driven
- * cursors.
- */
- #define SYBECRSFLAST 20265 /* Fetch type LAST requires fully keyset
- * driven cursors.
- */
- #define SYBECRSBROL 20266 /* Backward scrolling cannot be used in a
- * forward scrolling cursor.
- */
- #define SYBECRSFROWN 20267 /* Row number to be fetched is outside valid
- * range.
- */
- #define SYBECRSBSKEY 20268 /* Keyset cannot be scrolled backward in mixed
- * cursors with a previous fetch type.
- */
- #define SYBECRSRO 20269 /* Data locking or modifications cannot be
- * made in a READONLY cursor.
- */
- #define SYBECRSNOCOUNT 20270 /* The DBNOCOUNT option should not be
- * turned on when doing updates or deletes with
- * dbcursor().
- */
- #define SYBECRSTAB 20271 /* Table name must be determined in operations
- * involving data locking or modifications.
- */
- #define SYBECRSUPDNB 20272 /* Update or insert operations cannot use bind
- * variables when binding type is NOBIND.
- */
- #define SYBECRSNOWHERE 20273 /* A WHERE clause is not allowed in a cursor
- * update or insert.
- */
- #define SYBECRSSET 20274 /* A SET clause is required for a cursor
- * update or insert.
- */
- #define SYBECRSUPDTAB 20275 /* Update or insert operations using bind
- * variables require single table cursors.
- */
- #define SYBECRSNOUPD 20276 /* Update or delete operation did not affect
- * any rows.
- */
- #define SYBECRSINV 20277 /* Invalid cursor statement. */
- #define SYBECRSNOKEYS 20278 /* The entire keyset must be defined for KEYSET cursors.*/
- #define SYBECRSNOBIND 20279/* Cursor bind must be called prior to updating cursor */
- #define SYBECRSFTYPE 20280 /* Unknown fetch type.*/
- #define SYBECRSINVALID 20281 /* The cursor handle is invalid.*/
- #define SYBECRSMROWS 20282 /* Multiple rows are returned, only one is expected.*/
- #define SYBECRSNROWS 20283 /* No rows returned, at least one is expected.*/
- #define SYBECRSNOLEN 20284 /* No unique index found.*/
- #define SYBECRSNOPTCC 20285 /* No OPTCC was found.*/
- #define SYBECRSNORDER 20286 /* The order of clauses must be from, where, and order by.*/
- #define SYBECRSNOTABLE 20287 /* Table name is NULL.*/
- #define SYBECRSNUNIQUE 20288 /* No unique keys associated with this view.*/
- #define SYBECRSVAR 20289 /* There is no valid address associated with this bind.*/
- #define SYBENOVALUE 20290 /* Security labels require both a name and a value */
- #define SYBEVOIDRET 20291 /* Parameter of type SYBVOID cannot
- ** be a return parameter.
- */
- #define SYBECLOSEIN 20292 /* Unable to close interface file. */
- #define SYBEBOOL 20293 /* Boolean parameters must be TRUE or FALSE. */
- #define SYBEBCPOPT 20294 /* The %s option cannot be called while a bulk
- ** copy operation is progress.
- */
- #define SYBEERRLABEL 20295 /* An illegal value was returned from the
- ** security label handler.
- */
- #define SYBEATTNACK 20296 /* Timed out waiting for server to
- ** acknowledge attention."
- */
- #define SYBEBBFL 20297 /* -001-
- ** Batch failed in bulk-copy to SQL Server
- */
- #define SYBEDCL 20298 /* -004-
- ** DCL Error
- */
- #define SYBECS 20299 /* -004-
- ** cs context Error
- */
- /* WARNING: whenever a new DB-Library error message is added,
- * increment DBERRCOUNT.
- */
- #define DBERRCOUNT 299
- /*
- ** Define timeout period for attention acknowlegemets.
- */
- #define ATTN_TIMEOUT 30
- /*
- ** Define the symbol which denotes a null-terminated string length.
- */
- #define DBNULLTERM -1
-
- /* These are the codes returned by dbpoll(): */
- #define DBRESULT 1
- #define DBNOTIFICATION 2
- #define DBTIMEOUT 3
- #define DBINTERRUPT 4
-
- /* Define the flags for db_netflags */
- #define DBRPFILL 0x0001 /* pending recvfill_a completed */
- #define DBRPENDING 0x0002 /* pending recvfill_a still pending */
- #define DBRPSFILLW 0x0004 /* sync fill invoked and waiting */
- #define DBRPASFILLW 0x0008 /* async fill invoked and waiting */
- #define DBPOLLWAIT 0x0010 /* dbproc specific dbpoll waiting */
- #define DBRPSTART 0x0020 /* read pending start up */
- #define DBRPSHUT 0x0040 /* socket/channel shutting down ignore
- ** and recvfill_a error */
- #define DBRNOMORE 0x0080 /* do not read next token */
- #define DBRINOPEN 0x0100 /* dbproc is still being opened and
- ** may need to resize buffers.
- ** Therefore, we won't do any read
- ** ahead until after the buffers
- ** would have been resized.
- */
- #define DBPOLLWAIT_A 0x0200 /* asynchronous dbpoll waiting */
- #define DBPOLL_TIMER 0x0400 /* The timer is still set for dbpoll */
- #define DBPWTIMEOUT 0x0800 /* The recvpendwait was timed out */
- #define DBRPARANOID 0x1000 /* Beware of AST interrupts (on VMS) */
- #define DBREADCOMP 0x2000 /* Read completed */
- #define DBWRITECOMP 0x4000 /* Write completed */
- #define DBURGECOMP 0x8000 /* Urgent write completed */
- /* The DBSORTORDER structure is used by dbloadsort(), dbstrcmp(), dbstrsort(),
- * and dbfreesort().
- */
- typedef struct dbsortorder
- {
- DBVOIDPTR sort;
- } DBSORTORDER;
- /*
- ** 001
- **
- ** Function Prototype for the functions refered thru a function pointer.
- */
- CS_START_EXTERN_C
- typedef int (CS_PUBLIC DBFAR *DBWAITFUNC) PROTOTYPE((
- void
- ));
- typedef RETCODE (CS_PUBLIC DBFAR * DB_ATTN_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc,
- int data));
- typedef RETCODE (CS_PUBLIC DBFAR * DB_READ_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc,
- BYTE DBFAR *buffer,
- DBINT count,
- DBBOOL unused,
- DBINT DBFAR *timeout));
- typedef RETCODE (CS_PUBLIC DBFAR *DB_AST_PROC)PROTOTYPE((
- CS_VOID DBFAR *param));
- typedef RETCODE (CS_PUBLIC DBFAR *DB_READ_A_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc,
- BYTE DBFAR *buffer,
- DBINT count,
- DBINT DBFAR *bytes_read,
- RETCODE DBFAR *final_result,
- DB_AST_PROC ast_proc,
- BYTE DBFAR *ast_param));
- typedef RETCODE (CS_PUBLIC DBFAR *DB_WRIT_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc,
- BYTE DBFAR *buffer,
- DBINT count,
- DBBOOL wait_for_response));
- typedef RETCODE (CS_PUBLIC DBFAR *DB_CLOS_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc));
- typedef RETCODE (CS_PUBLIC DBFAR *DB_BINDPROC_FUNC)PROTOTYPE((
- BYTE DBFAR *srctype,
- DBINT srclen,
- BYTE DBFAR *desttype,
- DBINT destlen));
- typedef RETCODE (CS_PUBLIC DBFAR *DB_HCONVERT_FUNC)PROTOTYPE((
- BYTE DBFAR *srctype,
- DBINT srclen,
- BYTE DBFAR *desttype,
- DBINT destlen));
- typedef RETCODE (CS_PUBLIC DBFAR * DBFAR * DB_BUSYRETVAL_FUNC)PROTOTYPE((
- CS_VOID DBFAR *));
- typedef void (CS_PUBLIC DBFAR *DB_DBIDLE_FUNC) PROTOTYPE((
- DBWAITFUNC dfunc,
- CS_VOID DBFAR *dbproc
- ));
- typedef int (CS_PUBLIC DBFAR *DB_DBCHKINTR_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc));
- typedef int (CS_PUBLIC DBFAR *DB_DBHNDLINTR_FUNC)PROTOTYPE((
- CS_VOID DBFAR *dbproc));
- typedef DBWAITFUNC (CS_PUBLIC DBFAR *DB_DBBUSY_FUNC) PROTOTYPE((
- CS_VOID DBFAR *dbproc
- ));
- typedef CS_INT (CS_PUBLIC DBFAR *EVENTHANDLEFUNC) PROTOTYPE((
- CS_VOID DBFAR *dbproc,
- DBCHAR DBFAR *event,
- DBUSMALLINT level,
- DBUSMALLINT option));
- CS_END_EXTERN_C
- /*
- ** HOSTSERVER.h - structures and defines for communicating with server
- **
- */
- /*
- ** Structure forward declaration to get rid of C++ compilers' warning.
- */
- struct dbprlist;
- struct dbprlist;
- /*
- ** Data structure used by both send and recv
- */
- typedef struct servbuf
- {
- BYTE *serv_sbuf; /* send: start of send buffer */
- BYTE *serv_snb; /* send: next place in buffer */
- int serv_sleft; /* send: room left in send buffer */
- int serv_sbsize; /* send: buffer size */
- int serv_snum; /* send # for network */
- int serv_sstat; /* send: status bits */
- BYTE *serv_rbuf; /* recv: start of recv buffer */
- BYTE *serv_rnb; /* recv: next place in buffer */
- int serv_rleft; /* recv: room left in recv buffer */
- int serv_rbsize; /* recv: buffer size */
- int serv_rnum; /* recv # for network */
- int serv_rstat; /* recv: status bits */
- int serv_commtype; /* communications type (tcp, etc.) */
- DB_ATTN_FUNC serv_attn; /* network-dependent routine to send
- * an ATTN packet to the SQL Server.
- */
- DB_READ_FUNC serv_read; /* network-dependent routine to read
- * a byte stream from the SQL Server.
- */
- DB_READ_A_FUNC serv_read_a; /* async version of serv_read(). */
- DB_WRIT_FUNC serv_writ; /* network-dependent routine to write
- * a byte stream to the SQL Server.
- */
- DB_CLOS_FUNC serv_clos; /* network-dependent routine to close
- * a connection to the SQL Server.
- */
- BYTE serv_rbuftype; /* packet type of the last read buffer */
- void *serv_endpoint;
- void *serv_ioreadevent;
- void *serv_iowriteevent;
- } SERVBUF;
- /*
- ** DBSTRING - This structure is just used for stringing text or parameters
- ** together.
- */
- struct dbstring
- {
- BYTE *strtext; /* actual byte string */
- DBINT strtotlen; /* allocated length of the byte string */
- struct dbstring *strnext;
- };
- typedef struct dbstring DBSTRING;
- /*
- ** DBROWDATA - This structure is used to hold the actual data that
- ** comes back for every column in every row. The DBPROCESS structure
- ** points to a linked-list of DBROW structures. Each DBROW strcture points
- ** to an array of DBROWDATA structures. Since every DBROWDATA structure
- ** contains pointers to separately allocated buffers, the members of
- ** each array are linked together in a singly-linked list, to facilitate
- ** the operation of simple row-freeing routines.
- */
- struct dbrowdata
- {
- BYTE *data; /* actual data for this column in this
- * row
- */
- DBINT datlen; /* length, in bytes, of this data */
- DBINT maxtxtlen; /* This used to keep track of the
- * largest SYBTEXT/SYBIMAGE column
- * received so far.
- */
- DBBINARY dattxptr[DBTXPLEN];/* This data's text-ptr, if it's of
- * type SYBTEXT.
- */
- DBTINYINT dattxplen; /* Length, in bytes, of the text-ptr. */
- DBBINARY dattxts[DBTXTSLEN];/* The text-timestamp of this text
- * value.
- */
- DBTINYINT dattxtslen; /* Length, in bytes, of the
- * text-timestamp.
- */
- struct dbrowdata *datnext;
- };
- typedef struct dbrowdata DBROWDATA;
- /*
- ** DBTYPEINFO - This is the structure through which precision and scale
- ** information for Numeric/Decimal datatypes gets passed
- */
- typedef struct dbtypeinfo
- {
- DBINT precision;
- DBINT scale;
- } DBTYPEINFO;
- /*
- ** BINDREC - This is the structure used to store information about
- ** which columns should be bound to which programming variables
- */
- struct bindrec
- {
- BYTE *bindvar; /* ptr to program variable */
- DBINT bindlen; /* length of program variable */
- DB_BINDPROC_FUNC bindproc; /* procedure to use for data copy. */
- DBINT *bindnullind; /* IBM-type indicator variable. */
- DBINT bindtype; /* variable for indexing convertfunc
- ** tables.
- */
- DBTYPEINFO bindtypeinfo; /* precision/scale info */
- };
- typedef struct bindrec BINDREC;
- /*
- ** NULLBIND - This structure is attached to the DBPROCESS and is used
- ** to determine what to bind when bind values are NULL.
- */
- struct nullbind
- {
- DBBIT nullbit;
- DBTINYINT nulltiny;
- DBSMALLINT nullsmall;
- DBINT nullint;
- DBCHAR *nullchar;
- DBINT nulllchar; /* length of char string */
- DBBINARY *nullbinary;
- DBINT nulllbinary; /* length of binary string */
- DBDATETIME nulldatetime;
- DBMONEY nullmoney;
- DBFLT8 nullflt8;
- DBCHAR *nullstring;
- DBCHAR *nullntbstring;
- DBVARYCHAR nullvarychar;
- DBVARYBIN nullvarybin;
- DBDATETIME4 nullsmalldatetime;
- DBMONEY4 nullsmallmoney;
- DBREAL nullflt4;
- DBNUMERIC nullnumeric;
- DBDECIMAL nulldecimal;
- DBCHAR *nullsensitivity;
- DBCHAR *nullboundary;
- };
- typedef struct nullbind NULLBIND;
- /*
- ** DBCOLINFO - This structure contains the format information about a column.
- ** There is a linked list of DBCOLINFO structures in the DBPROCESS
- ** structure. There is one DBCOLINFO structure for each column in the
- ** target list of the current command. Format information for
- ** alternate rows, like compute, is kept in the DBALTHEAD and
- ** DBALTINFO structures.
- */
- struct dbcolinfo
- {
- char colname[DBMAXCOLNAME+1];/* column name */
- BYTE coltype; /* column type */
- DBINT coludtype; /* user-defined type */
- DBINT collen; /* max length of column */
- DBINT colprlen; /* max printing length of column */
- char *colcontrol; /* control format, if any */
- struct bindrec colbind; /* binding info, if any */
- int coltable; /* for browse mode: which table
- * did this column come from?
- */
- BYTE colstatus; /* for browse mode: what kind of column
- * is this?
- */
- BYTE colrowstatus; /* for holding status in the
- * TDS_ROWFMT data stream
- */
- char colorigname[DBMAXCOLNAME+1];/* for browse mode: what is the name
- * of the table column that provided
- * this select-list member?
- */
- char *coltxobjname; /* the SQL Server always returns the
- * qualified object-name for TEXT
- * columns.
- */
- DBTYPEINFO coltypeinfo; /* precision/scale info for Numeric or
- * Decimal columns.
- */
- DBBOOL colhasnull; /* Is column data null? */
- struct dbcolinfo *colnext; /* next column */
- };
- typedef struct dbcolinfo DBCOLINFO;
- /*
- ** DBTABNAME - This structure contains information about the tables which
- ** were used to produce the current set of results. The SQL Server only
- ** provides this info for queries that are executed in "browse mode".
- **
- ** There is a linked list of DBTABNAME structures in the DBPROCESS
- ** structure. There is one DBTABNAME structure for each table used to
- ** produce the target list of the current command.
- **
- ** If this query was executed without "browse mode", then this list will
- ** have no members.
- */
- struct dbtabname
- {
- char tabname[DBMAXNAME+1]; /* column name */
- struct dbtabname *tabnext; /* next column */
- };
- typedef struct dbtabname DBTABNAME;
- /*
- ** DBALTHEAD - This structure contains information for ALT rows. ALT
- ** rows are COMPUTE results. There is one DBALTHEAD for each COMPUTE
- ** statement. All the COMPUTE operators in a particular COMPUTE statement
- ** must have the same bylist -- this is enforced by the SQL Server.
- ** Off of each DBALTHEAD is a linked list of DBALTINFO structures that
- ** describe the format for each particular COMPUTE operation in the
- ** COMPUTE.
- */
- struct dbalthead
- {
- DBUSMALLINT althid; /* id for this COMPUTE statement */
- BYTE althalts; /* number of DBALTINFO structures in althlist */
- BYTE althsizeby; /* number of elements in the bylist */
- BYTE althbylist[DBMAXBYLIST]; /* colids of bylist elements */
- struct dbaltinfo *althlist; /* linked list of DBALTINFOs */
- struct dbprlist *althprlist; /* order print list for aops */
- struct dbalthead *althnext; /* next dbalthead */
- };
- typedef struct dbalthead DBALTHEAD;
- typedef struct dbxlate
- {
- void DBFAR *bufstart; /* For use when freeing translation tables. */
- void DBFAR *xlate; /* Points to an INTL_XLATE structure. */
- } DBXLATE;
- /*
- ** DBPRLIST - This structure is used to create an 'ordered' printing list
- ** for computes. For example a compute might be:
- ** compute sum(col1), avg(col2), sum(col2), avg(col3), avg(col1)
- ** For printing, it would be nice to have a list that pointed to the
- ** right DBALTINFO structures like this:
- ** sum(col1)-->sum(col2)
- ** |
- ** |/
- ** avg(col1)-->avg(col2)-->avg(col3)
- ** It is used by the praltrow function that dbprrow uses but the
- ** information could be used by any DBLIB client.
- */
- struct dbprlist
- {
- DBROWDATA *prdata; /* actual data for the compute */
- struct dbaltinfo *prtarget; /* related ALTINFO struct */
- struct dbprlist *prright; /* next aop in compute */
- struct dbprlist *prdown; /* next compute in query */
- };
- typedef struct dbprlist DBPRLIST;
- /*
- ** DBALTINFO - This structure contains the format information about
- ** alternate rows. Compute clauses produce alternate rows of data,
- ** interspersed with the regular data rows returned by the dataserver.
- ** There is a linked list of DBALTHEAD structures in the DBPROCESS
- ** structure. There is one DBALTHEAD structure for each possible
- ** type of alternate row of the current command. Format information for
- ** regular data rows is kept in the DBCOLINFO structure.
- */
- struct dbaltinfo
- {
- char *altname; /* null terminated string to alt header */
- BYTE alttoken; /* type of alternate information */
- BYTE altcolid; /* which target list member referenced */
- BYTE alttype; /* column type */
- DBINT altudtype; /* user-defined type */
- DBINT altlen; /* max length of column */
- DBINT altprlen; /* printing length of data */
- char *altcontrol; /* control format, if any */
- DBTYPEINFO alttypeinfo; /* precision/scale info for Numeric or
- * Decimal columns.
- */
- struct dbprlist *altprlist; /* ptr to ordered printing list */
- struct bindrec altbind; /* binding info, if any */
- struct dbaltinfo *altnext; /* next column */
- };
- typedef struct dbaltinfo DBALTINFO;
- /*
- ** DBROW - This structure is used to store the actual row and alternate row
- ** data returned by the dataserver. The member of the DBPROCESS structure
- ** called dbfirstdata stores the doubly-linked list of rows. If buffering
- ** is off, only one row is stored. The rows are stored in the order that
- ** they are received from the server.
- */
- struct dbrow
- {
- DBINT rowid; /* this is the returned row number */
- DBUSMALLINT rowaltid; /* for ALT rows, this is
- * DBALTINFO.altid
- */
- DBROWDATA *rowdata; /* actual data */
- DBBOOL rowhasnull; /* are there any NULLS in this row of
- * data?
- */
- struct dbrow *rowprev; /* previous row if buffering on */
- struct dbrow *rownext; /* next row if buffering on */
- };
- typedef struct dbrow DBROW;
- /*
- ** DBINFO - This structure is used to store information and error messages
- ** returned by the dataserver.
- **
- ** NOTE - This structure is used by APT.
- ** Adding or deleting structure members should be done with
- ** care.
- */
- struct dbinfo
- {
- DBINT infonum; /* error or info number */
- DBTINYINT infostate; /* error state number */
- DBTINYINT infoclass; /* info class or error severity */
- char DBFAR *infotext; /* null terminated message */
- char DBFAR *infoservname; /* null terminated Server-name */
- char DBFAR *infoprocname; /* null terminated procedure-name */
- DBUSMALLINT infolinenum; /* stored-procedure line-number */
- struct dbinfo DBFAR *infonext;
- };
- typedef struct dbinfo DBINFO;
- struct dbparam
- {
- BYTE namelen;
- DBCHAR paramname[DBMAXNAME + 1];
- BYTE status;
- DBINT usertype;
- BYTE datatype;
- DBINT maxdatalen;
- DBTYPEINFO paramtypeinfo;
- DBINT datalen;
- BYTE *data;
- struct dbparam *paramnext;
- };
- typedef struct dbparam DBPARAM;
- struct dbmsg
- {
- DBUSMALLINT msgid;
- DBUSMALLINT nummsgparams;
- DBPARAM *param;
- };
- typedef struct dbmsg DBMSG;
- /*
- ** Options - both for the dataserver and DBLIB
- ** As additional options are added, they should be added here and in
- ** the Dboptdict array.
- */
- /*
- ** dataserver options are defined in pss.h
- ** dataserver options and their index into the Dboptdict array
- ** Dboptdict is defined in options.c
- */
- #define DBPARSEONLY 0
- #define DBESTIMATE 1
- #define DBSHOWPLAN 2
- #define DBNOEXEC 3
- #define DBARITHIGNORE 4
- #define DBNOCOUNT 5
- #define DBARITHABORT 6
- #define DBTEXTLIMIT 7
- #define DBBROWSE 8
- #define DBOFFSET 9
- #define DBSTAT 10
- #define DBERRLVL 11
- #define DBCONFIRM 12
- #define DBSTORPROCID 13
- #define DBBUFFER 14
- #define DBNOAUTOFREE 15
- #define DBROWCOUNT 16
- #define DBTEXTSIZE 17
- #define DBNATLANG 18
- #define DBDATEFORMAT 19
- #define DBPRPAD 20
- #define DBPRCOLSEP 21
- #define DBPRLINELEN 22
- #define DBPRLINESEP 23
- #define DBLFCONVERT 24
- #define DBDATEFIRST 25
- #define DBCHAINXACTS 26
- #define DBFIPSFLAG 27
- #define DBISOLATION 28
- #define DBAUTH 29
- #define DBIDENTITY 30
- #define DBNOIDCOL 31
- #define DBDATESHORT 32
- #define DBNUMOPTIONS 33 /* total number of Db-Lib options */
- #define DBPADOFF 0
- #define DBPADON 1
- #define OFF 0
- #define ON 1
- /* RETCODES for option routines */
- #define NOSUCHOPTION 2
- /*
- ** DBOPTION - This structure is used to store the current dataserver
- ** options. This will be used if TDS version is less than 5.0.
- */
- #define MAXOPTTEXT 32
- struct dboption
- {
- char opttext[MAXOPTTEXT];
- DBSTRING *optparam; /* param to the option */
- DBUSMALLINT optstatus; /* status of option */
- DBBOOL optactive; /* is this structure active (being used?) */
- struct dboption *optnext; /* for different versions of an option */
- };
- typedef struct dboption DBOPTION;
- /*
- ** These are the offset types recognized by the SQL Server
- ** They are contained in the SQL Server header pss.h. The _defines
- ** come from y.tab.h.
- */
- #define OFF_SELECT (DBUSMALLINT) _SELECT
- #define OFF_EXEC (DBUSMALLINT) _EXECUTE
- #define OFF_FROM (DBUSMALLINT) _FROM
- #define OFF_ORDER (DBUSMALLINT) _ORDER
- #define OFF_COMPUTE (DBUSMALLINT) _COMPUTE
- #define OFF_TABLE (DBUSMALLINT) _TABLE
- #define OFF_PROCEDURE (DBUSMALLINT) _PROCEDURE
- #define OFF_STATEMENT (DBUSMALLINT) _STATEMENT
- #define OFF_PARAM (DBUSMALLINT) _PARAM
- /*
- ** DBOFF - This structure is used to store text offset information.
- ** This information is used to send back to the dataserver new
- ** control formats.
- */
- struct dboff
- {
- DBUSMALLINT offtype; /* type of offset */
- DBUSMALLINT offset; /* actual offset */
- struct dboff *offnext;
- };
- typedef struct dboff DBOFF;
- /*
- ** DBDONE - This structure is just the dataserver done packet.
- ** It has information about the completion of a command.
- */
- struct dbdone
- {
- DBUSMALLINT donestatus; /* done status bits */
- DBUSMALLINT doneinfo; /* command specific info */
- DBINT donecount; /* done count -- rows for example */
- };
- typedef struct dbdone DBDONE;
- /* Status bits for DBPROCESS dbstatus */
- #define READROW ((DBINT) 0x2)
- #define INSPROC ((DBINT) 0x4)
- #define EXECDONE ((DBINT) 0x8)
- #define NEWDB ((DBINT) 0x10)
- #define DB__INRPC ((DBINT) 0x20)
- #define DB__INEVENTRAISE ((DBINT) 0x40)
- #define DB__INEVENTCREATE ((DBINT) 0x80)
- #define DB__GOTEVENT ((DBINT) 0x0100)
- #define DB__PASSTHRU ((DBINT) 0x0200)
- #define DB__TDSPRINTFUNC ((DBINT) 0x0400)
- #define DB__INLINENOTIFY ((DBINT) 0x0800)
- #define DB__READING_NOTIFY ((DBINT) 0x1000)
- #define DB__IN_EVENT_HANDLER ((DBINT) 0x2000)
- #define DB__TEXTPARAMS ((DBINT) 0x4000)
- #define DB__POLLEVENT ((DBINT) 0x8000)
- #define DBCANCELLING ((DBINT) 0x10000)
- #define DBTIMING_OUT ((DBINT) 0x20000)
- #define DB__NEEDSWAP ((DBINT) 0x40000)
- #define DB__INTCANCEL ((DBINT) 0x80000)
- #define DB__SEENEOM ((DBINT) 0x100000)
- #define DB__CANCELLED ((DBINT) 0x200000)
- /* Possible flags for dbback_compatible(). Currently the only
- ** one is DBEXTRARESULTS.
- */
- #define DBEXTRARESULTS (DBUSMALLINT) 0x1
- /* Bulk-copy information -- */
- #define PERIOD '.' /* the separator... */
- #define STATNULL (BYTE) 0x08
- #ifndef IN
- #define IN (BYTE) 1 /* TEMPORARY - for backward compatibility. */
- #endif /* IN */
- #ifndef OUT
- #define OUT (BYTE) 2 /* TEMPORARY - for backward compatibility. */
- #endif /* OUT */
- #define DB_IN (BYTE) 1
- #define DB_OUT (BYTE) 2
- #define BCPNAMELEN 255
- #define DEFABORT 10 /* # of errors before we give up */
- #define ERRFILE "bcp.error" /* default error file name */
- /* BCP macros: */
- #define BCP_SETL(a,b) dbsetlbool((a), (b), DBSETBCP)
- #define BCP_SETLABELED(a,b) dbsetlbool((a), (b), DBSETLABELED)
- /* The fields for calls to bcpcontrol. */
- #define BCPMAXERRS 1
- #define BCPFIRST 2
- #define BCPLAST 3
- #define BCPBATCH 4
- #define BCPERRFILE 5 /* TEMPORARY - for backward compatibility. */
- /* The fields for calls to bcp_options(). */
- #define BCPLABELED 1
- /* This macro is used by the Non-C interfaces to BCP-Library: */
- #define BCP_HOSTTYPE(a, b) bcp_hosttype(a, b)
- typedef struct bcpparsetable
- {
- char dbname[DBMAXNAME+1];
- char ownername[DBMAXNAME+1];
- char tabname[DBMAXNAME+1];
- } BCPPARSETABLE;
- /*
- ** BCPCOLDESC
- ** This is the basic unit of information used for bulkcopy.
- ** All the bulkcopy routines that talk with the SQL Server
- ** routines pass an array of these.
- */
- typedef struct bcpcoldesc
- {
- BYTE *cd_dvalue; /* current value to be inserted */
- BYTE *cd_defvalue; /* default value to be inserted */
- DBINT cd_defaultid; /* default's object id */
- DBINT cd_dlen; /* current length to be inserted */
- DBINT cd_deflen; /* length of default to be inserted */
- DBINT cd_colen; /* max length allowed in column */
- short cd_coloff; /* column offset in row */
- BYTE cd_colid; /* id of column */
- BYTE cd_type; /* storage type of column */
- BYTE cd_status; /* status bits */
- DBBOOL cd_nullok; /* is a NULL ok here? */
- char cd_name[DBMAXNAME+1]; /* column name */
- DBBOOL cd_moretext; /* Is this text to be sent via bcp__moretext? */
- long cd_textpos; /* file-position of a long TEXT or IMAGE */
- DBTYPEINFO cd_typeinfo; /* precision/scale info */
- DBBOOL cd_nodata; /* no data for this column; bcp will
- ** insert a placeholder instead
- */
- DBINT cd_nodata_len; /* length of placeholder; valid only
- ** if cd_nodata is TRUE
- */
- } BCPCOLDESC;
- #define IDENTITYCOL 0x80 /* value in status column in syscolumns
- table for the identity column */
- /*
- ** BCPROWDESC
- ** This is the basic unit of information used for bulkcopy.
- ** All the bulkcopy routines that talk with the SQL Server
- ** routines pass it.
- */
- typedef struct bcprowdesc
- {
- BCPCOLDESC *rd_coldesc; /* ptr to base address of COLDESC
- * array
- */
- short rd_colcount; /* number of columns in COLDESC */
- short rd_minlen; /* minimum length of a row */
- short rd_maxlen; /* maximum length of a row */
- short rd_viscols; /* number of user-visible columns
- ** in COLDESC
- */
- } BCPROWDESC;
- /*
- ** BCPHOSTDESC
- ** This is the structure that has information about the type and
- ** format of the input or output data. An array of these is used
- ** to read/write data to or from the host.
- */
- typedef struct bcphostdesc
- {
- BCPCOLDESC *h_tabcol; /* which table column we are referring to */
- int h_tabcolnum; /* which table column we are referring to */
- DB_HCONVERT_FUNC hconvert; /* conversion function, if applicable */
- BYTE htype; /* host data type for this column */
- DBINT hcollen; /* max length of hostfile column */
- BYTE *hdata; /* host-format data for this column */
- DBINT hdatlen; /* length of actual hostfile data */
- BYTE *hxdata; /* This buffer holds the host-format data
- * after it has been translated from
- * one character-set to another.
- */
- DBINT hxbuflen; /* The length of the hxdata buffer. */
- DBINT hxdatlen; /* This is the length of the hostfile data,
- * after it has undergone any character-set
- * translation.
- */
- int hprefixlen; /* length of length-prefix for this column */
- BYTE *hterm; /* terminator for this column, if applicable */
- int htermlen; /* length of terminator for this column */
- DBBOOL hmoretext; /* Is this text to be sent via
- * bcp__moretext?
- */
- long htextpos; /* file-position of a long TEXT or IMAGE */
- DBTYPEINFO htypeinfo; /* precision/scale info */
- } BCPHOSTDESC;
- /* This structure contains information about any partially-sent TEXT or IMAGE
- * values, which are still to be sent by bcp_moretext().
- */
- typedef struct bcptextrec
- {
- DBINT len;
- BYTE *val;
- BYTE type;
- DBSMALLINT rowoffset;
- BYTE coloffset;
- } BCPTEXTREC;
- /*
- ** BCPDESC
- ** This structure is used to pass the information contained in the
- ** Bulk Copy property sheet around (if in the form version), or
- ** information typed in by the user (in dblib/stand alone version).
- ** In the form version, this information comes from the main form, while
- ** in the stand alone version this comes from the command line.
- */
- typedef struct bcpdesc
- {
- BCPROWDESC *bd_rowdesc; /* the associated rowdesc */
- BCPHOSTDESC *bd_hostdesc; /* ptr to base address of
- * BCPHOSTDESC array
- */
- DBXLATE *bd_xlt_tosrv; /* For use when transferring
- * character strings from the
- * front-end to the SQL Server
- * (DB_IN).
- */
- DBXLATE *bd_xlt_todisp; /* For use when transferring
- * character strings from the
- * SQL Server to the front-end
- * (DB_OUT).
- */
- int bd_hcolcount; /* number of (cols) BCPHOSTDESC
- ** structs */
- BCPPARSETABLE *bd_ptable; /* ptr to tbl name components
- */
- char bd_table[(3 * DBMAXNAME) + 3]; /* full table name */
- char bd_filename[BCPNAMELEN+1];/* host filename */
- BYTE bd_direction; /* in/out */
- char *bd_errfilename; /* host err file name */
- BYTE *bd_errfile; /* host err file pointer */
- DBINT bd_abort; /* # of errors allowable */
- DBINT bd_firstrow; /* begin copy at this row */
- DBINT bd_lastrow; /* end copy at this row */
- DBINT bd_batch; /* # of rows per batch */
- int bd_textcount; /* # of text-columns in the
- * current row.
- */
- int bd_textcol; /* # of the text-column now
- * being sent by bcp_moretext().
- * Starts at zero.
- */
- DBINT bd_textbytes; /* # of bytes already sent of
- * the current bcp_moretext()
- * column.
- */
- BCPTEXTREC *bd_textarray;
- char bd_orgdb[DBMAXNAME+1]; /* the name of the original
- * database that we started
- * with
- */
- int bd_senscount; /* # of sensitivity-columns in
- * the current row; includes
- * sensitivity label even if
- * the "labeled" option is not
- * set.
- */
- BCPTEXTREC *bd_sensarray;
- DBBOOL bd_mapcols; /* TRUE if user-supplied
- * column numbers need to
- * be mapped.
- */
- BYTE dbconnstatus;
- } BCPDESC;
- /*
- ** Define flag to check dbconnstatus in BCPDESC structure.
- */
- #define BULKCMDSENT 0x01 /* set when bcp__bulkcmd is done */
- /* Structures and constants for localization information: */
- #define DBMAXMNYSYM 5 /* Max length of a currency symbol. */
- #define DBMAXECLEN 8 /* Max length of a DB-Library error-number
- * mnemonic.
- */
- #define DBMAXESLEN 256 /* Max length of a DB-Library error-string. */
- #define DBMAXCPYRTLEN 512 /* Max length of a DB-Library copyright
- * notice.
- */
- /* Each DBMNYFMT structure defines one of the acceptable money formats
- * for a given locale.
- */
- typedef struct dbmnyfmt
- {
- DBBOOL symbol_first; /* Should this currency symbol
- * appear before the currency
- * amount?
- */
- char symbol[DBMAXMNYSYM+1]; /* The money-symbol itself. */
- struct dbmnyfmt *next;
- } DBMNYFMT;
- /* Each DBERRSTR structure will define one of the DB-Library error codes
- * for a given locale.
- */
- typedef struct dberrstr
- {
- char errcode[DBMAXECLEN+1];
- /* The short mnemonic string
- * which describes this error.
- */
- char string[DBMAXESLEN+1];
- /* The error-string itself. */
- } DBERRSTR;
- typedef struct dblocale
- {
- char name[DBMAXNAME+1]; /* This locale's name. */
- DBVOIDPTR dateinfo; /* All of the month-names,
- * day-names, and date-format
- * information for this locale.
- * This is defined as a void
- * pointer, to avoid exposing
- * the INTL_DATEINFO structure
- * to customers.
- */
- int dateorder; /* An integer code which describes
- * this locale's default date-order.
- * This code is used by datetime.c.
- */
- char copyright[DBMAXCPYRTLEN];
- /* The copyright notice, in the
- * appropriate language.
- */
- DBMNYFMT *moneyfmt; /* A linked-list of money-format
- * structures.
- */
- #if WIN3 || SYB_MAC
- DBERRSTR *errlist[DBERRCOUNT];
- /* The original DBERRSTR array is
- * greater than 64K. It won't work
- * in Windows. We make it an array
- * of pointers instead.
- */
- #else
- DBERRSTR errlist[DBERRCOUNT];
- /* An array of error-code
- * structures.
- */
- #endif /* WIN3 || SYB_MAC */
-
- int usecount; /* How many DBPROCESSes are
- * using this localization
- * information? When the count
- * drops to zero, this whole
- * structure can be freed.
- */
- struct dblocale *next;
- } DBLOCALE;
-
- /*
- ** 4.6 additions begin here.
- */
- /*
- ** DBEVENTREC
- **
- ** This structure is used by dblibrary to keep track of event
- ** notifications, event invocations, and all other event-related
- ** activities.
- */
- typedef struct db__event_rec
- {
- DBCHAR name[DBMAXNAME+1]; /* event name */
- DBUSMALLINT status; /* bit field */
- DBUSMALLINT options; /* notification flags */
- EVENTHANDLEFUNC handler; /* event handler */
- DBPARAM *evtparams; /* event parameters */
- DBSMALLINT numparams; /* how many params? */
- struct db__event_rec *next; /* next event struct. */
- } DBEVENTREC;
- /*
- ** DBEVENTREC status bits.
- */
- #define DB__PENDING_NOTIFY ((DBUSMALLINT)0x01)
-
- /*
- ** DBRPCREC
- **
- ** This structure is used by dblib to build a remote procedure call
- ** data stream.
- */
- typedef struct db__rpc_rec
- {
- DBCHAR *name; /* rpc name */
- DBUSMALLINT options; /* bit options */
- DBPARAM *rpcparams; /* list of params */
- DBSMALLINT numparams; /* how many params? */
- DBSMALLINT textparams; /* any text/image params? */
- DBSMALLINT textsent; /* how many text/image
- ** parameters have been sent.
- */
- DBUSMALLINT status; /* bit field */
- } DBRPCREC;
-
- /*
- ** values for dbrpcrec->status.
- */
- #define DB__READ_END_OF_PARAM ((DBUSMALLINT)0x0001)
- #define DB__READ_ALL_PARAMS ((DBUSMALLINT)0x0002)
-
- /*
- ** DBTRACEREC
- **
- ** This structure is used by dblib to store information regarding
- ** Tabular Data Stream tracing.
- */
- typedef struct db__trace_rec
- {
- DBUSMALLINT trace_flag; /* bit field */
- DBVOIDPTR outfp;
- INTFUNCPTR printfunc; /* trace routine */
- struct db__trace_rec *next;
- } DBTRACEREC;
-
- /*
- ** DBTRACEBUF
- **
- ** This structure is used to store trace information that will be
- ** made available to the user via the dbtracestring() routine.
- */
- typedef struct db__tracebuf
- {
- BYTE *tbuf;
- DBSMALLINT bufsize;
- BYTE *next_byte;
- DBSMALLINT bytes_left;
- } DBTRACEBUF;
-
-
- /*
- ** Trace flag symbols.