From 06eaf7232e9a920468c0f8d74dcf2fe8b555501c Mon Sep 17 00:00:00 2001
From: Daniel Baumann <daniel.baumann@progress-linux.org>
Date: Sat, 13 Apr 2024 14:24:36 +0200
Subject: Adding upstream version 1:10.11.6.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
---
 storage/connect/plgodbc.h | 230 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 230 insertions(+)
 create mode 100644 storage/connect/plgodbc.h

(limited to 'storage/connect/plgodbc.h')

diff --git a/storage/connect/plgodbc.h b/storage/connect/plgodbc.h
new file mode 100644
index 00000000..46bc41ad
--- /dev/null
+++ b/storage/connect/plgodbc.h
@@ -0,0 +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 ---------------------------- */
-- 
cgit v1.2.3