diff options
Diffstat (limited to 'storage/connect/plgodbc.h')
-rw-r--r-- | storage/connect/plgodbc.h | 460 |
1 files changed, 230 insertions, 230 deletions
diff --git a/storage/connect/plgodbc.h b/storage/connect/plgodbc.h index 94b8b42df1d..46bc41ad16b 100644 --- a/storage/connect/plgodbc.h +++ b/storage/connect/plgodbc.h @@ -1,230 +1,230 @@ -/***********************************************************************/
-/* PLGODBC.H - This is the ODBC PlugDB driver include file. */
-/***********************************************************************/
-//efine WINVER 0x0300 // prevent Windows 3.1 feature usage
-#include <windows.h> /* Windows include file */
-#include <windowsx.h> /* Message crackers */
-#include <commctrl.h>
-
-/***********************************************************************/
-/* Included C-definition files required by the interface. */
-/***********************************************************************/
-#include <string.h> /* String manipulation declares */
-#include <stdlib.h> /* C standard library */
-#include <ctype.h> /* C language specific types */
-#include <stdio.h> /* FOPEN_MAX declaration */
-#include <time.h> /* time_t type declaration */
-
-/***********************************************************************/
-/* ODBC interface of PlugDB driver declares. */
-/***********************************************************************/
-#include "podbcerr.h" /* Resource ID for PlugDB Driver */
-#if !defined(WIN32)
-#include "w16macro.h"
-#endif
-
-#define ODBCVER 0x0300
-
-#include "sqltypes.h"
-#include "sql.h"
-#include "sqlext.h"
-
-/***********************************************************************/
-/* Definitions to be used in function prototypes. */
-/* The SQL_API is to be used only for those functions exported for */
-/* driver manager use. */
-/* The EXPFUNC is to be used only for those functions exported but */
-/* used internally, ie, dialog procs. */
-/* The INTFUNC is to be used for all other functions. */
-/***********************************************************************/
-#if defined(WIN32)
-#define INTFUNC __stdcall
-#define EXPFUNC __stdcall
-#else
-#define INTFUNC FAR PASCAL
-#define EXPFUNC __export CALLBACK
-#endif
-
-/***********************************************************************/
-/* External variables. */
-/***********************************************************************/
-extern HINSTANCE NEAR s_hModule; // DLL handle.
-#ifdef DEBTRACE
-extern FILE *debug;
-#endif
-extern bool clearerror;
-
-/***********************************************************************/
-/* Additional values used by PlugDB for ODBC. */
-/***********************************************************************/
-#define RES_TYPE_PREPARE 1 /* Result from SQLPrepare */
-#define RES_TYPE_CATALOG 2 /* Result from catalog funcs */
-#define MAXPATHLEN _MAX_PATH /* Max path length */
-#define MAXKEYLEN 16 /* Max keyword length */
-#define MAXDESC 256 /* Max description length */
-#define MAXDSNAME 33 /* Max data source name length */
-#define MAXCRNAME 18 /* Max stmt cursor name length */
-#define DEFMAXRES 6300 /* Default MaxRes value */
-#define NAM_LEN 128 /* Length of col and tab names */
-
-#define MAXRESULT 1000 /* ? */
-#define MAXCOMMAND 200 /* ? */
-#define RC_ERROR RC_LAST-1
-#define RC_FREE 3
-
-#if !defined(NOLIB)
-#define CNXKEY uint /* C Key returned by Conn DLL */
-#else
-typedef struct _conninfo *PCONN;
-#endif /* !NOLIB */
-
-#if defined(DEBTRACE)
-#define TRACE0(X) fprintf(debug,X);
-#define TRACE1(X,A) fprintf(debug,X,A);
-#define TRACE2(X,A,B) fprintf(debug,X,A,B);
-#define TRACE3(X,A,B,C) fprintf(debug,X,A,B,C);
-#define TRACE4(X,A,B,C,D) fprintf(debug,X,A,B,C,D);
-#define TRACE5(X,A,B,C,D,E) fprintf(debug,X,A,B,C,D,E);
-#define TRACE6(X,A,B,C,D,E,F) fprintf(debug,X,A,B,C,D,E,F);
-#else /* !DEBTRACE*/
-#define TRACE0(X)
-#define TRACE1(X,A)
-#define TRACE2(X,A,B)
-#define TRACE3(X,A,B,C)
-#define TRACE4(X,A,B,C,D)
-#define TRACE5(X,A,B,C,D,E)
-#define TRACE6(X,A,B,C,D,E,F)
-#endif /* !DEBTRACE*/
-
-// This definition MUST be identical to the value in plgdbsem.h
-#define XMOD_PREPARE 1
-
-/***********************************************************************/
-/* ODBC.INI keywords (use extern definition in SETUP.C) */
-/***********************************************************************/
-extern char const *EMPTYSTR; /* Empty String */
-extern char const *OPTIONON;
-extern char const *OPTIONOFF;
-extern char const *INI_SDEFAULT; /* Default data source name */
-extern char const *ODBC_INI; /* ODBC initialization file */
-extern char const *INI_KDEFL; /* Is SQL to use by default? */
-extern char const *INI_KLANG; /* Application language */
-extern char const *INI_KDATA; /* Data description file */
-extern char const *INI_KSVR; /* PLG Server */
-
-/************************************************************************/
-/* Attribute key indexes (into an array of Attr structs, see below) */
-/************************************************************************/
-#define KEY_DSN 0
-#define KEY_DEFL 1
-#define KEY_LANG 2
-#define KEY_DATA 3
-#define KEY_SERVER 4
-#define LAST_KEY 5 /* Number of keys in TAG's */
-#define KEY_DESC 5
-#define KEY_TRANSNAME 6
-#define KEY_TRANSOPTION 7
-#define KEY_TRANSDLL 8
-#define NUMOFKEYS 9 /* Number of keys supported */
-
-#define FOURYEARS 126230400 // Four years in seconds (1 leap)
-
-/***********************************************************************/
-/* This is used when an "out of memory" error happens, because this */
-/* error recording system allocates memory when it logs an error, */
-/* and it would be bad if it tried to allocate memory when it got an */
-/* out of memory error. */
-/***********************************************************************/
-typedef enum _ERRSTAT {
- errstatOK,
- errstatNO_MEMORY,
- } ERRSTAT;
-
-/***********************************************************************/
-/* Types */
-/***********************************************************************/
-typedef struct TagAttr {
- bool fSupplied;
- char Attr[MAXPATHLEN];
- } TAG, *PTAG;
-
-typedef struct _parscons { /* Parse constants */
- int Slen; /* String length */
- int Ntag; /* Number of entries in tags */
- int Nlook; /* Number of entries in lookup */
- char Sep; /* Separator */
- } PARC, *PPARC;
-
-/***********************************************************************/
-/* Attribute string look-up table (maps keys to associated indexes) */
-/***********************************************************************/
-typedef struct _Look {
- const char *szKey;
- int iKey;
- } LOOK, *PLOOK;
-
-/***********************************************************************/
-/* This is info about a single error. */
-/***********************************************************************/
-typedef struct _ERRBLK *PERRBLK;
-
-typedef struct _ERRBLK {
- PERRBLK Next; /* Next block in linked list of error blocks */
- DWORD Native_Error; /* Native error */
- DWORD Stderr; /* SQLC error code */
- PSZ Message; /* Points to text of message */
- } ERRBLK;
-
-/***********************************************************************/
-/* This is a header block, it records information about a list of */
-/* errors (ERRBLOCK's). */
-/***********************************************************************/
-typedef struct _ERRINFO {
- PERRBLK First; /* First block in linked list of error blocks. */
- PERRBLK Last; /* Last block in above list. */
- ERRSTAT Errstat; /* Status for special condition out of memory */
- } ERRINFO, *PERRINFO;
-
-/***********************************************************************/
-/* Environment information. */
-/***********************************************************************/
-typedef struct _env {
- ERRINFO Errinfo; /* Error list */
- UDWORD ODBCver;
- UDWORD ODBCdateformat;
- } ENV, *PENV;
-
-/***********************************************************************/
-/* Classes used in the PlugDB ODBC Driver. */
-/***********************************************************************/
-typedef class DBC *PDBC;
-typedef class STMT *PSTMT;
-typedef class CURSOR *PCURSOR;
-typedef class RESULT *PRESULT;
-typedef class BINDDATA *PBIND;
-typedef class BINDPARM *PBDPARM;
-typedef class CPLGdrv *PSCDRV;
-typedef class DESCRIPTOR *PDSC;
-
-/***********************************************************************/
-/* ODBC Prototypes. */
-/***********************************************************************/
-void PostSQLError(HENV, HDBC, HSTMT, DWORD, DWORD, PSZ);
-void ClearSQLError(HENV, HDBC, HSTMT);
-short LoadRcString(UWORD, LPSTR, short);
-RETCODE RetcodeCopyBytes(HDBC, HSTMT, UCHAR FAR *, SWORD,
- SWORD FAR *, UCHAR FAR *, SWORD, bool);
-
-/***********************************************************************/
-/* Private functions used by the driver. */
-/***********************************************************************/
-bool EXPFUNC FDriverConnectProc(HWND, WORD, WPARAM, LPARAM);
-extern void ParseAttrString(PLOOK, PTAG, UCHAR FAR *, PPARC);
-RETCODE PASCAL StringCopy(HDBC, HSTMT, PTR, SWORD, SWORD FAR *,
- char FAR *);
-RETCODE PASCAL ShortCopy(HDBC, HSTMT, PTR, SWORD, SWORD FAR *, short);
-RETCODE PASCAL LongCopy(HDBC, HSTMT, PTR, SWORD, SWORD FAR *, int);
-RETCODE PASCAL GeneralCopy(HDBC, HSTMT, PTR, SWORD,
- SWORD FAR *, PTR, SWORD);
-
-/* --------------------- End of PLGODBC.H ---------------------------- */
+/***********************************************************************/ +/* PLGODBC.H - This is the ODBC PlugDB driver include file. */ +/***********************************************************************/ +//efine WINVER 0x0300 // prevent Windows 3.1 feature usage +#include <windows.h> /* Windows include file */ +#include <windowsx.h> /* Message crackers */ +#include <commctrl.h> + +/***********************************************************************/ +/* Included C-definition files required by the interface. */ +/***********************************************************************/ +#include <string.h> /* String manipulation declares */ +#include <stdlib.h> /* C standard library */ +#include <ctype.h> /* C language specific types */ +#include <stdio.h> /* FOPEN_MAX declaration */ +#include <time.h> /* time_t type declaration */ + +/***********************************************************************/ +/* ODBC interface of PlugDB driver declares. */ +/***********************************************************************/ +#include "podbcerr.h" /* Resource ID for PlugDB Driver */ +#if !defined(WIN32) +#include "w16macro.h" +#endif + +#define ODBCVER 0x0300 + +#include "sqltypes.h" +#include "sql.h" +#include "sqlext.h" + +/***********************************************************************/ +/* Definitions to be used in function prototypes. */ +/* The SQL_API is to be used only for those functions exported for */ +/* driver manager use. */ +/* The EXPFUNC is to be used only for those functions exported but */ +/* used internally, ie, dialog procs. */ +/* The INTFUNC is to be used for all other functions. */ +/***********************************************************************/ +#if defined(WIN32) +#define INTFUNC __stdcall +#define EXPFUNC __stdcall +#else +#define INTFUNC FAR PASCAL +#define EXPFUNC __export CALLBACK +#endif + +/***********************************************************************/ +/* External variables. */ +/***********************************************************************/ +extern HINSTANCE NEAR s_hModule; // DLL handle. +#ifdef DEBTRACE +extern FILE *debug; +#endif +extern bool clearerror; + +/***********************************************************************/ +/* Additional values used by PlugDB for ODBC. */ +/***********************************************************************/ +#define RES_TYPE_PREPARE 1 /* Result from SQLPrepare */ +#define RES_TYPE_CATALOG 2 /* Result from catalog funcs */ +#define MAXPATHLEN _MAX_PATH /* Max path length */ +#define MAXKEYLEN 16 /* Max keyword length */ +#define MAXDESC 256 /* Max description length */ +#define MAXDSNAME 33 /* Max data source name length */ +#define MAXCRNAME 18 /* Max stmt cursor name length */ +#define DEFMAXRES 6300 /* Default MaxRes value */ +#define NAM_LEN 128 /* Length of col and tab names */ + +#define MAXRESULT 1000 /* ? */ +#define MAXCOMMAND 200 /* ? */ +#define RC_ERROR RC_LAST-1 +#define RC_FREE 3 + +#if !defined(NOLIB) +#define CNXKEY uint /* C Key returned by Conn DLL */ +#else +typedef struct _conninfo *PCONN; +#endif /* !NOLIB */ + +#if defined(DEBTRACE) +#define TRACE0(X) fprintf(debug,X); +#define TRACE1(X,A) fprintf(debug,X,A); +#define TRACE2(X,A,B) fprintf(debug,X,A,B); +#define TRACE3(X,A,B,C) fprintf(debug,X,A,B,C); +#define TRACE4(X,A,B,C,D) fprintf(debug,X,A,B,C,D); +#define TRACE5(X,A,B,C,D,E) fprintf(debug,X,A,B,C,D,E); +#define TRACE6(X,A,B,C,D,E,F) fprintf(debug,X,A,B,C,D,E,F); +#else /* !DEBTRACE*/ +#define TRACE0(X) +#define TRACE1(X,A) +#define TRACE2(X,A,B) +#define TRACE3(X,A,B,C) +#define TRACE4(X,A,B,C,D) +#define TRACE5(X,A,B,C,D,E) +#define TRACE6(X,A,B,C,D,E,F) +#endif /* !DEBTRACE*/ + +// This definition MUST be identical to the value in plgdbsem.h +#define XMOD_PREPARE 1 + +/***********************************************************************/ +/* ODBC.INI keywords (use extern definition in SETUP.C) */ +/***********************************************************************/ +extern char const *EMPTYSTR; /* Empty String */ +extern char const *OPTIONON; +extern char const *OPTIONOFF; +extern char const *INI_SDEFAULT; /* Default data source name */ +extern char const *ODBC_INI; /* ODBC initialization file */ +extern char const *INI_KDEFL; /* Is SQL to use by default? */ +extern char const *INI_KLANG; /* Application language */ +extern char const *INI_KDATA; /* Data description file */ +extern char const *INI_KSVR; /* PLG Server */ + +/************************************************************************/ +/* Attribute key indexes (into an array of Attr structs, see below) */ +/************************************************************************/ +#define KEY_DSN 0 +#define KEY_DEFL 1 +#define KEY_LANG 2 +#define KEY_DATA 3 +#define KEY_SERVER 4 +#define LAST_KEY 5 /* Number of keys in TAG's */ +#define KEY_DESC 5 +#define KEY_TRANSNAME 6 +#define KEY_TRANSOPTION 7 +#define KEY_TRANSDLL 8 +#define NUMOFKEYS 9 /* Number of keys supported */ + +#define FOURYEARS 126230400 // Four years in seconds (1 leap) + +/***********************************************************************/ +/* This is used when an "out of memory" error happens, because this */ +/* error recording system allocates memory when it logs an error, */ +/* and it would be bad if it tried to allocate memory when it got an */ +/* out of memory error. */ +/***********************************************************************/ +typedef enum _ERRSTAT { + errstatOK, + errstatNO_MEMORY, + } ERRSTAT; + +/***********************************************************************/ +/* Types */ +/***********************************************************************/ +typedef struct TagAttr { + bool fSupplied; + char Attr[MAXPATHLEN]; + } TAG, *PTAG; + +typedef struct _parscons { /* Parse constants */ + int Slen; /* String length */ + int Ntag; /* Number of entries in tags */ + int Nlook; /* Number of entries in lookup */ + char Sep; /* Separator */ + } PARC, *PPARC; + +/***********************************************************************/ +/* Attribute string look-up table (maps keys to associated indexes) */ +/***********************************************************************/ +typedef struct _Look { + const char *szKey; + int iKey; + } LOOK, *PLOOK; + +/***********************************************************************/ +/* This is info about a single error. */ +/***********************************************************************/ +typedef struct _ERRBLK *PERRBLK; + +typedef struct _ERRBLK { + PERRBLK Next; /* Next block in linked list of error blocks */ + DWORD Native_Error; /* Native error */ + DWORD Stderr; /* SQLC error code */ + PSZ Message; /* Points to text of message */ + } ERRBLK; + +/***********************************************************************/ +/* This is a header block, it records information about a list of */ +/* errors (ERRBLOCK's). */ +/***********************************************************************/ +typedef struct _ERRINFO { + PERRBLK First; /* First block in linked list of error blocks. */ + PERRBLK Last; /* Last block in above list. */ + ERRSTAT Errstat; /* Status for special condition out of memory */ + } ERRINFO, *PERRINFO; + +/***********************************************************************/ +/* Environment information. */ +/***********************************************************************/ +typedef struct _env { + ERRINFO Errinfo; /* Error list */ + UDWORD ODBCver; + UDWORD ODBCdateformat; + } ENV, *PENV; + +/***********************************************************************/ +/* Classes used in the PlugDB ODBC Driver. */ +/***********************************************************************/ +typedef class DBC *PDBC; +typedef class STMT *PSTMT; +typedef class CURSOR *PCURSOR; +typedef class RESULT *PRESULT; +typedef class BINDDATA *PBIND; +typedef class BINDPARM *PBDPARM; +typedef class CPLGdrv *PSCDRV; +typedef class DESCRIPTOR *PDSC; + +/***********************************************************************/ +/* ODBC Prototypes. */ +/***********************************************************************/ +void PostSQLError(HENV, HDBC, HSTMT, DWORD, DWORD, PSZ); +void ClearSQLError(HENV, HDBC, HSTMT); +short LoadRcString(UWORD, LPSTR, short); +RETCODE RetcodeCopyBytes(HDBC, HSTMT, UCHAR FAR *, SWORD, + SWORD FAR *, UCHAR FAR *, SWORD, bool); + +/***********************************************************************/ +/* Private functions used by the driver. */ +/***********************************************************************/ +bool EXPFUNC FDriverConnectProc(HWND, WORD, WPARAM, LPARAM); +extern void ParseAttrString(PLOOK, PTAG, UCHAR FAR *, PPARC); +RETCODE PASCAL StringCopy(HDBC, HSTMT, PTR, SWORD, SWORD FAR *, + char FAR *); +RETCODE PASCAL ShortCopy(HDBC, HSTMT, PTR, SWORD, SWORD FAR *, short); +RETCODE PASCAL LongCopy(HDBC, HSTMT, PTR, SWORD, SWORD FAR *, int); +RETCODE PASCAL GeneralCopy(HDBC, HSTMT, PTR, SWORD, + SWORD FAR *, PTR, SWORD); + +/* --------------------- End of PLGODBC.H ---------------------------- */ |