diff CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/fakesql.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/fakesql.h	Tue Mar 18 17:55:14 2025 -0400
@@ -0,0 +1,283 @@
+/*
+ * fakesql.h --
+ *
+ *	Include file that defines the subset of SQL/CLI that TDBC
+ *	uses, so that tdbc::odbc can build without an explicit ODBC
+ *	dependency. It comprises only data type, constant and
+ *	function declarations.
+ *
+ * The programmers of this file believe that it contains material not
+ * subject to copyright under the doctrines of scenes a faire and
+ * of merger of idea and expression. Accordingly, this file is in the
+ * public domain.
+ *
+ *-----------------------------------------------------------------------------
+ */
+
+#ifndef FAKESQL_H_INCLUDED
+#define FAKESQL_H_INCLUDED
+
+#include <stddef.h>
+
+#ifndef MODULE_SCOPE
+#define MODULE_SCOPE extern
+#endif
+
+/* Limits */
+
+#define SQL_MAX_DSN_LENGTH 32
+#define SQL_MAX_MESSAGE_LENGTH 512
+
+/* Fundamental data types */
+
+#ifndef _WIN32
+typedef int BOOL;
+typedef unsigned int DWORD;
+typedef void* HANDLE;
+typedef HANDLE HWND;
+typedef unsigned short WCHAR;
+typedef char* LPSTR;
+typedef WCHAR* LPWSTR;
+typedef const char* LPCSTR;
+typedef const WCHAR* LPCWSTR;
+typedef unsigned short WORD;
+#endif
+typedef void* PVOID;
+typedef short RETCODE;
+typedef long SDWORD;
+typedef short SWORD;
+typedef unsigned short USHORT;
+typedef USHORT UWORD;
+
+/* ODBC data types */
+
+typedef Tcl_WideInt SQLBIGINT;
+typedef unsigned char SQLCHAR;
+typedef double SQLDOUBLE;
+typedef void* SQLHANDLE;
+typedef SDWORD SQLINTEGER;
+typedef PVOID SQLPOINTER;
+typedef SWORD SQLSMALLINT;
+typedef Tcl_WideUInt SQLUBIGINT;
+typedef unsigned char SQLUCHAR;
+typedef unsigned int SQLUINTEGER;
+typedef UWORD SQLUSMALLINT;
+typedef WCHAR SQLWCHAR;
+
+typedef SQLSMALLINT SQLRETURN;
+
+/* TODO - Check how the SQLLEN and SQLULEN types are handled on
+ *        64-bit Unix. */
+
+#if defined(_WIN64)
+typedef Tcl_WideInt SQLLEN;
+typedef Tcl_WideUInt SQLULEN;
+#else
+typedef SQLINTEGER SQLLEN;
+typedef SQLUINTEGER SQLULEN;
+#endif
+
+/* Handle types */
+
+typedef SQLHANDLE SQLHENV;
+typedef SQLHANDLE SQLHDBC;
+typedef SQLHANDLE SQLHSTMT;
+typedef HWND SQLHWND;
+
+#define SQL_HANDLE_DBC 2
+#define SQL_HANDLE_ENV 1
+#define SQL_HANDLE_STMT 3
+
+/* Null handles */
+
+#define SQL_NULL_HANDLE ((SQLHANDLE) 0)
+#define SQL_NULL_HENV ((SQLHENV) 0)
+#define SQL_NULL_HDBC ((SQLHDBC) 0)
+#define SQL_NULL_HSTMT ((SQLHSTMT) 0)
+
+/* SQL data types */
+
+enum _SQL_DATATYPE {
+    SQL_BIGINT = -5,
+    SQL_BINARY = -2,
+    SQL_BIT = -7,
+    SQL_CHAR = 1,
+    SQL_DATE = 9,
+    SQL_DECIMAL = 3,
+    SQL_DOUBLE = 8,
+    SQL_FLOAT = 6,
+    SQL_INTEGER = 4,
+    SQL_LONGVARBINARY = -4,
+    SQL_LONGVARCHAR = -1,
+    SQL_NUMERIC = 2,
+    SQL_REAL = 7,
+    SQL_SMALLINT = 5,
+    SQL_TIME = 10,
+    SQL_TIMESTAMP = 11,
+    SQL_TINYINT = -6,
+    SQL_VARBINARY = -3,
+    SQL_VARCHAR = 12,
+    SQL_WCHAR = -8,
+    SQL_WVARCHAR = -9,
+    SQL_WLONGVARCHAR = -10,
+};
+
+/* C data types */
+
+#define SQL_SIGNED_OFFSET (-20)
+
+#define SQL_C_BINARY SQL_BINARY
+#define SQL_C_CHAR SQL_CHAR
+#define SQL_C_DOUBLE SQL_DOUBLE
+#define SQL_C_LONG SQL_INTEGER
+#define SQL_C_SBIGINT SQL_BIGINT + SQL_SIGNED_OFFSET
+#define SQL_C_SLONG SQL_INTEGER + SQL_SIGNED_OFFSET
+#define SQL_C_WCHAR SQL_WCHAR
+
+/* Parameter transmission diretions */
+
+#define SQL_PARAM_INPUT 1
+
+/* Status returns */
+
+#define    SQL_ERROR (-1)
+#define    SQL_NO_DATA 100
+#define	   SQL_NO_TOTAL (-4)
+#define    SQL_SUCCESS 0
+#define    SQL_SUCCESS_WITH_INFO 1
+#define    SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
+
+/* Diagnostic fields */
+
+enum _SQL_DIAG {
+    SQL_DIAG_NUMBER = 2,
+    SQL_DIAG_SQLSTATE = 4
+};
+
+/* Transaction isolation levels */
+
+#define SQL_TXN_READ_COMMITTED 2
+#define SQL_TXN_READ_UNCOMMITTED 1
+#define SQL_TXN_REPEATABLE_READ 4
+#define SQL_TXN_SERIALIZABLE 8
+
+/* Access modes */
+
+#define SQL_MODE_READ_ONLY 1UL
+#define SQL_MODE_READ_WRITE 0UL
+
+/* ODBC properties */
+
+#define SQL_ACCESS_MODE 101
+#define SQL_AUTOCOMMIT 102
+#define SQL_TXN_ISOLATION 108
+
+/* ODBC attributes */
+
+#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE
+#define SQL_ATTR_CONNECTION_TIMEOUT 113
+#define SQL_ATTR_ODBC_VERSION 200
+#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION
+#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT
+
+/* Nullable? */
+
+#define SQL_NULLABLE_UNKNOWN 2
+
+/* Placeholder for length of missing data */
+
+#define SQL_NULL_DATA (-1)
+
+/* ODBC versions */
+
+#define SQL_OV_ODBC3 3UL
+#define SQL_ODBC_VER 10
+
+/* SQLDriverConnect flags */
+
+#define SQL_DRIVER_COMPLETE_REQUIRED 3
+#define SQL_DRIVER_NOPROMPT 0
+
+/* SQLGetTypeInfo flags */
+
+#define SQL_ALL_TYPES 0
+
+/* Transaction actions */
+
+#define SQL_COMMIT 0
+#define SQL_ROLLBACK 1
+
+/* Data source fetch flags */
+
+#define SQL_FETCH_FIRST 2
+#define SQL_FETCH_FIRST_SYSTEM 32
+#define SQL_FETCH_FIRST_USER 31
+#define SQL_FETCH_NEXT 1
+
+/* ODBCINST actions */
+
+#define  ODBC_ADD_DSN     1
+#define  ODBC_CONFIG_DSN  2
+#define  ODBC_REMOVE_DSN  3
+#define ODBC_ADD_SYS_DSN 4
+#define ODBC_CONFIG_SYS_DSN 5
+#define ODBC_REMOVE_SYS_DSN 6
+
+/* ODBCINST errors */
+
+#define ODBC_ERROR_GENERAL_ERR 1
+#define ODBC_ERROR_INVALID_BUFF_LEN 2
+#define ODBC_ERROR_INVALID_HWND 3
+#define ODBC_ERROR_INVALID_STR 4
+#define ODBC_ERROR_INVALID_REQUEST_TYPE 5
+#define ODBC_ERROR_COMPONENT_NOT_FOUND 6
+#define ODBC_ERROR_INVALID_NAME 7
+#define ODBC_ERROR_INVALID_KEYWORD_VALUE 8
+#define ODBC_ERROR_INVALID_DSN 9
+#define ODBC_ERROR_INVALID_INF 10
+#define ODBC_ERROR_REQUEST_FAILED 11
+#define ODBC_ERROR_INVALID_PATH 12
+#define ODBC_ERROR_LOAD_LIB_FAILED 13
+#define ODBC_ERROR_INVALID_PARAM_SEQUENCE 14
+#define ODBC_ERROR_INVALID_LOG_FILE 15
+#define ODBC_ERROR_USER_CANCELED 16
+#define ODBC_ERROR_USAGE_UPDATE_FAILED 17
+#define ODBC_ERROR_CREATE_DSN_FAILED 18
+#define ODBC_ERROR_WRITING_SYSINFO_FAILED 19
+#define ODBC_ERROR_REMOVE_DSN_FAILED 20
+#define ODBC_ERROR_OUT_OF_MEM 21
+#define ODBC_ERROR_OUTPUT_STRING_TRUNCATED 22
+
+/* ODBC client library entry points */
+
+#ifdef _WIN32
+#define SQL_API __stdcall
+#define INSTAPI __stdcall
+#else
+#define SQL_API /* nothing */
+#define INSTAPI /* nothing */
+#endif
+
+#include "odbcStubs.h"
+MODULE_SCOPE const odbcStubDefs* odbcStubs;
+
+/*
+ * Additional entry points in ODBCINST - all of these are optional
+ * and resolved with Tcl_FindSymbol, not directly in Tcl_LoadLibrary.
+ */
+
+MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSourceW)(HWND, WORD, LPCWSTR,
+						  LPCWSTR);
+MODULE_SCOPE BOOL (INSTAPI* SQLConfigDataSource)(HWND, WORD, LPCSTR, LPCSTR);
+MODULE_SCOPE BOOL (INSTAPI* SQLInstallerErrorW)(WORD, DWORD*, LPWSTR, WORD,
+						WORD*);
+MODULE_SCOPE BOOL (INSTAPI* SQLInstallerError)(WORD, DWORD*, LPSTR, WORD,
+					       WORD*);
+
+/*
+ * Function that initialises the stubs
+ */
+
+MODULE_SCOPE Tcl_LoadHandle OdbcInitStubs(Tcl_Interp*, Tcl_LoadHandle*);
+
+#endif