summaryrefslogtreecommitdiffstats
path: root/tcl8.6/pkgs/tdbcodbc1.1.0/generic/fakesql.h
diff options
context:
space:
mode:
Diffstat (limited to 'tcl8.6/pkgs/tdbcodbc1.1.0/generic/fakesql.h')
-rw-r--r--tcl8.6/pkgs/tdbcodbc1.1.0/generic/fakesql.h282
1 files changed, 282 insertions, 0 deletions
diff --git a/tcl8.6/pkgs/tdbcodbc1.1.0/generic/fakesql.h b/tcl8.6/pkgs/tdbcodbc1.1.0/generic/fakesql.h
new file mode 100644
index 0000000..7bde20e
--- /dev/null
+++ b/tcl8.6/pkgs/tdbcodbc1.1.0/generic/fakesql.h
@@ -0,0 +1,282 @@
+/*
+ * 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_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