diff --git a/libphobos/src/Makefile.am b/libphobos/src/Makefile.am index ec2bda68334..94e28f3d175 100644 --- a/libphobos/src/Makefile.am +++ b/libphobos/src/Makefile.am @@ -87,13 +87,15 @@ PHOBOS_DSOURCES = else -PHOBOS_DSOURCES = etc/c/curl.d etc/c/zlib.d std/algorithm/comparison.d \ - std/algorithm/internal.d std/algorithm/iteration.d \ - std/algorithm/mutation.d std/algorithm/package.d \ - std/algorithm/searching.d std/algorithm/setops.d \ - std/algorithm/sorting.d std/array.d std/ascii.d std/base64.d \ - std/bigint.d std/bitmanip.d std/checkedint.d std/compiler.d \ - std/complex.d std/concurrency.d std/container/array.d \ +PHOBOS_DSOURCES = etc/c/curl.d etc/c/odbc/odbc32.d etc/c/odbc/odbc64.d \ + etc/c/odbc/package.d etc/c/odbc/sql.d etc/c/odbc/sqlext.d \ + etc/c/odbc/sqltypes.d etc/c/odbc/sqlucode.d etc/c/sqlite3.d \ + etc/c/zlib.d std/algorithm/comparison.d std/algorithm/internal.d \ + std/algorithm/iteration.d std/algorithm/mutation.d \ + std/algorithm/package.d std/algorithm/searching.d \ + std/algorithm/setops.d std/algorithm/sorting.d std/array.d std/ascii.d \ + std/base64.d std/bigint.d std/bitmanip.d std/checkedint.d \ + std/compiler.d std/complex.d std/concurrency.d std/container/array.d \ std/container/binaryheap.d std/container/dlist.d \ std/container/package.d std/container/rbtree.d std/container/slist.d \ std/container/util.d std/conv.d std/csv.d std/datetime/date.d \ diff --git a/libphobos/src/Makefile.in b/libphobos/src/Makefile.in index d1512b9e4c9..d052aa805c2 100644 --- a/libphobos/src/Makefile.in +++ b/libphobos/src/Makefile.in @@ -148,7 +148,14 @@ LTLIBRARIES = $(toolexeclib_LTLIBRARIES) am__DEPENDENCIES_1 = am__dirstamp = $(am__leading_dot)dirstamp @ENABLE_LIBDRUNTIME_ONLY_FALSE@am__objects_1 = etc/c/curl.lo \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/zlib.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/odbc32.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/odbc64.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/package.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/sql.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/sqlext.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/sqltypes.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/sqlucode.lo \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/sqlite3.lo etc/c/zlib.lo \ @ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/comparison.lo \ @ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/internal.lo \ @ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/iteration.lo \ @@ -548,13 +555,15 @@ libgphobos_la_LINK = $(LIBTOOL) --tag=D $(libgphobos_la_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(GDC) $(AM_CFLAGS) $(CFLAGS) \ $(libgphobos_la_LDFLAGS) $(LDFLAGS) -o $@ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@PHOBOS_DSOURCES = etc/c/curl.d etc/c/zlib.d std/algorithm/comparison.d \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/internal.d std/algorithm/iteration.d \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/mutation.d std/algorithm/package.d \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/searching.d std/algorithm/setops.d \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/sorting.d std/array.d std/ascii.d std/base64.d \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/bigint.d std/bitmanip.d std/checkedint.d std/compiler.d \ -@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/complex.d std/concurrency.d std/container/array.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@PHOBOS_DSOURCES = etc/c/curl.d etc/c/odbc/odbc32.d etc/c/odbc/odbc64.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/package.d etc/c/odbc/sql.d etc/c/odbc/sqlext.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/odbc/sqltypes.d etc/c/odbc/sqlucode.d etc/c/sqlite3.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ etc/c/zlib.d std/algorithm/comparison.d std/algorithm/internal.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/iteration.d std/algorithm/mutation.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/package.d std/algorithm/searching.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/algorithm/setops.d std/algorithm/sorting.d std/array.d std/ascii.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/base64.d std/bigint.d std/bitmanip.d std/checkedint.d \ +@ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/compiler.d std/complex.d std/concurrency.d std/container/array.d \ @ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/container/binaryheap.d std/container/dlist.d \ @ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/container/package.d std/container/rbtree.d std/container/slist.d \ @ENABLE_LIBDRUNTIME_ONLY_FALSE@ std/container/util.d std/conv.d std/csv.d std/datetime/date.d \ @@ -703,6 +712,17 @@ etc/c/$(am__dirstamp): @$(MKDIR_P) etc/c @: > etc/c/$(am__dirstamp) etc/c/curl.lo: etc/c/$(am__dirstamp) +etc/c/odbc/$(am__dirstamp): + @$(MKDIR_P) etc/c/odbc + @: > etc/c/odbc/$(am__dirstamp) +etc/c/odbc/odbc32.lo: etc/c/odbc/$(am__dirstamp) +etc/c/odbc/odbc64.lo: etc/c/odbc/$(am__dirstamp) +etc/c/odbc/package.lo: etc/c/odbc/$(am__dirstamp) +etc/c/odbc/sql.lo: etc/c/odbc/$(am__dirstamp) +etc/c/odbc/sqlext.lo: etc/c/odbc/$(am__dirstamp) +etc/c/odbc/sqltypes.lo: etc/c/odbc/$(am__dirstamp) +etc/c/odbc/sqlucode.lo: etc/c/odbc/$(am__dirstamp) +etc/c/sqlite3.lo: etc/c/$(am__dirstamp) etc/c/zlib.lo: etc/c/$(am__dirstamp) std/algorithm/$(am__dirstamp): @$(MKDIR_P) std/algorithm @@ -974,6 +994,8 @@ mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f etc/c/*.$(OBJEXT) -rm -f etc/c/*.lo + -rm -f etc/c/odbc/*.$(OBJEXT) + -rm -f etc/c/odbc/*.lo -rm -f std/*.$(OBJEXT) -rm -f std/*.lo -rm -f std/algorithm/*.$(OBJEXT) @@ -1030,6 +1052,7 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -rm -rf etc/c/.libs etc/c/_libs + -rm -rf etc/c/odbc/.libs etc/c/odbc/_libs -rm -rf std/.libs std/_libs -rm -rf std/algorithm/.libs std/algorithm/_libs -rm -rf std/container/.libs std/container/_libs @@ -1160,6 +1183,7 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f etc/c/$(am__dirstamp) + -rm -f etc/c/odbc/$(am__dirstamp) -rm -f std/$(am__dirstamp) -rm -f std/algorithm/$(am__dirstamp) -rm -f std/container/$(am__dirstamp) diff --git a/libphobos/src/etc/c/odbc/odbc32.d b/libphobos/src/etc/c/odbc/odbc32.d new file mode 100644 index 00000000000..32fae54854a --- /dev/null +++ b/libphobos/src/etc/c/odbc/odbc32.d @@ -0,0 +1,1810 @@ +module etc.c.odbc.odbc32; +public: + +extern (C) +{ + alias SQLCHAR = ubyte; + alias SQLSCHAR = byte; + alias SQLDATE = ubyte; + alias SQLDECIMAL = ubyte; + alias SQLDOUBLE = double; + alias SQLFLOAT = double; + alias SQLINTEGER = int; + alias SQLUINTEGER = uint; + alias SQLNUMERIC = ubyte; + alias SQLPOINTER = void*; + alias SQLREAL = float; + alias SQLSMALLINT = short; + alias SQLUSMALLINT = ushort; + alias SQLTIME = ubyte; + alias SQLTIMESTAMP = ubyte; + alias SQLVARCHAR = ubyte; + alias SQLTIMEWITHTIMEZONE = ubyte; + alias SQLTIMESTAMPWITHTIMEZONE = ubyte; + alias SQLRETURN = short; + alias SQLHANDLE = int; + alias SQLHENV = int; + alias SQLHDBC = int; + alias SQLHSTMT = int; + alias SQLHDESC = int; + alias RETCODE = short; + alias SQLHWND = void*; + struct tagDATE_STRUCT + { + SQLSMALLINT year = void; + SQLUSMALLINT month = void; + SQLUSMALLINT day = void; + } + alias DATE_STRUCT = tagDATE_STRUCT; + alias SQL_DATE_STRUCT = tagDATE_STRUCT; + struct tagTIME_STRUCT + { + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + } + alias TIME_STRUCT = tagTIME_STRUCT; + alias SQL_TIME_STRUCT = tagTIME_STRUCT; + struct tagTIMESTAMP_STRUCT + { + SQLSMALLINT year = void; + SQLUSMALLINT month = void; + SQLUSMALLINT day = void; + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + SQLUINTEGER fraction = void; + } + alias TIMESTAMP_STRUCT = tagTIMESTAMP_STRUCT; + alias SQL_TIMESTAMP_STRUCT = tagTIMESTAMP_STRUCT; + struct tagTIME_WITH_TIMEZONE_STRUCT + { + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + SQLSMALLINT timezone_hours = void; + SQLUSMALLINT timezone_minutes = void; + } + alias TIME_WITH_TIMEZONE_STRUCT = tagTIME_WITH_TIMEZONE_STRUCT; + alias SQL_TIME_WITH_TIMEZONE_STRUCT = tagTIME_WITH_TIMEZONE_STRUCT; + struct tagTIMESTAMP_WITH_TIMEZONE_STRUCT + { + SQLSMALLINT year = void; + SQLUSMALLINT month = void; + SQLUSMALLINT day = void; + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + SQLUINTEGER fraction = void; + SQLSMALLINT timezone_hours = void; + SQLUSMALLINT timezone_minutes = void; + } + alias TIMESTAMP_WITH_TIMEZONE_STRUCT = tagTIMESTAMP_WITH_TIMEZONE_STRUCT; + alias SQL_TIMESTAMP_WITH_TIMEZONE_STRUCT = tagTIMESTAMP_WITH_TIMEZONE_STRUCT; + enum SQLINTERVAL + { + SQL_IS_YEAR = 1, + SQL_IS_MONTH = 2, + SQL_IS_DAY = 3, + SQL_IS_HOUR = 4, + SQL_IS_MINUTE = 5, + SQL_IS_SECOND = 6, + SQL_IS_YEAR_TO_MONTH = 7, + SQL_IS_DAY_TO_HOUR = 8, + SQL_IS_DAY_TO_MINUTE = 9, + SQL_IS_DAY_TO_SECOND = 10, + SQL_IS_HOUR_TO_MINUTE = 11, + SQL_IS_HOUR_TO_SECOND = 12, + SQL_IS_MINUTE_TO_SECOND = 13, + } + alias SQL_IS_YEAR = SQLINTERVAL.SQL_IS_YEAR; + alias SQL_IS_MONTH = SQLINTERVAL.SQL_IS_MONTH; + alias SQL_IS_DAY = SQLINTERVAL.SQL_IS_DAY; + alias SQL_IS_HOUR = SQLINTERVAL.SQL_IS_HOUR; + alias SQL_IS_MINUTE = SQLINTERVAL.SQL_IS_MINUTE; + alias SQL_IS_SECOND = SQLINTERVAL.SQL_IS_SECOND; + alias SQL_IS_YEAR_TO_MONTH = SQLINTERVAL.SQL_IS_YEAR_TO_MONTH; + alias SQL_IS_DAY_TO_HOUR = SQLINTERVAL.SQL_IS_DAY_TO_HOUR; + alias SQL_IS_DAY_TO_MINUTE = SQLINTERVAL.SQL_IS_DAY_TO_MINUTE; + alias SQL_IS_DAY_TO_SECOND = SQLINTERVAL.SQL_IS_DAY_TO_SECOND; + alias SQL_IS_HOUR_TO_MINUTE = SQLINTERVAL.SQL_IS_HOUR_TO_MINUTE; + alias SQL_IS_HOUR_TO_SECOND = SQLINTERVAL.SQL_IS_HOUR_TO_SECOND; + alias SQL_IS_MINUTE_TO_SECOND = SQLINTERVAL.SQL_IS_MINUTE_TO_SECOND; + struct tagSQL_YEAR_MONTH + { + SQLUINTEGER year = void; + SQLUINTEGER month = void; + } + alias SQL_YEAR_MONTH_STRUCT = tagSQL_YEAR_MONTH; + struct tagSQL_DAY_SECOND + { + SQLUINTEGER day = void; + SQLUINTEGER hour = void; + SQLUINTEGER minute = void; + SQLUINTEGER second = void; + SQLUINTEGER fraction = void; + } + alias SQL_DAY_SECOND_STRUCT = tagSQL_DAY_SECOND; + struct tagSQL_INTERVAL_STRUCT + { + SQLINTERVAL interval_type = void; + SQLSMALLINT interval_sign = void; + union intval { SQL_YEAR_MONTH_STRUCT year_month = void; SQL_DAY_SECOND_STRUCT day_second = void; } + } + alias SQL_INTERVAL_STRUCT = tagSQL_INTERVAL_STRUCT; + alias SQLBIGINT = long; + alias SQLUBIGINT = ulong; + struct tagSQL_NUMERIC_STRUCT + { + SQLCHAR precision = void; + SQLSCHAR scale = void; + SQLCHAR sign = void; + SQLCHAR[SQL_MAX_NUMERIC_LEN] val = void; + } + alias SQL_NUMERIC_STRUCT = tagSQL_NUMERIC_STRUCT; + struct tagSQLGUID + { + SQLUINTEGER Data1 = void; + SQLUSMALLINT Data2 = void; + SQLUSMALLINT Data3 = void; + SQLCHAR[8] Data4 = void; + } + alias SQLGUID = tagSQLGUID; + alias BOOKMARK = uint; + alias SQLWCHAR = ushort; + alias SQLTCHAR = ubyte; + nothrow @nogc SQLRETURN SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC* ConnectionHandle); + nothrow @nogc SQLRETURN SQLAllocEnv(SQLHENV* EnvironmentHandle); + nothrow @nogc SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE* OutputHandle); + nothrow @nogc SQLRETURN SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT* StatementHandle); + nothrow @nogc SQLRETURN SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLINTEGER BufferLength, SQLINTEGER* StrLen_or_Ind); + deprecated("ODBC API: SQLBindParam is deprecated. Please use SQLBindParameter instead.") deprecated nothrow @nogc SQLRETURN SQLBindParam(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLUINTEGER LengthPrecision, SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, SQLINTEGER* StrLen_or_Ind); + nothrow @nogc SQLRETURN SQLCancel(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLCancelHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle); + nothrow @nogc SQLRETURN SQLCloseCursor(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLColAttribute(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT* StringLength, SQLPOINTER NumericAttribute); + nothrow @nogc SQLRETURN SQLColumns(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLCHAR* ColumnName, SQLSMALLINT NameLength4); + nothrow @nogc SQLRETURN SQLCompleteAsync(SQLSMALLINT HandleType, SQLHANDLE Handle, RETCODE* AsyncRetCodePtr); + nothrow @nogc SQLRETURN SQLConnect(SQLHDBC ConnectionHandle, SQLCHAR* ServerName, SQLSMALLINT NameLength1, SQLCHAR* UserName, SQLSMALLINT NameLength2, SQLCHAR* Authentication, SQLSMALLINT NameLength3); + nothrow @nogc SQLRETURN SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandle); + nothrow @nogc SQLRETURN SQLDataSources(SQLHENV EnvironmentHandle, SQLUSMALLINT Direction, SQLCHAR* ServerName, SQLSMALLINT BufferLength1, SQLSMALLINT* NameLength1Ptr, SQLCHAR* Description, SQLSMALLINT BufferLength2, SQLSMALLINT* NameLength2Ptr); + nothrow @nogc SQLRETURN SQLDescribeCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR* ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT* NameLength, SQLSMALLINT* DataType, SQLUINTEGER* ColumnSize, SQLSMALLINT* DecimalDigits, SQLSMALLINT* Nullable); + nothrow @nogc SQLRETURN SQLDisconnect(SQLHDBC ConnectionHandle); + nothrow @nogc SQLRETURN SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType); + nothrow @nogc SQLRETURN SQLError(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, SQLCHAR* Sqlstate, SQLINTEGER* NativeError, SQLCHAR* MessageText, SQLSMALLINT BufferLength, SQLSMALLINT* TextLength); + nothrow @nogc SQLRETURN SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR* StatementText, SQLINTEGER TextLength); + nothrow @nogc SQLRETURN SQLExecute(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLFetch(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLINTEGER FetchOffset); + nothrow @nogc SQLRETURN SQLFreeConnect(SQLHDBC ConnectionHandle); + nothrow @nogc SQLRETURN SQLFreeEnv(SQLHENV EnvironmentHandle); + nothrow @nogc SQLRETURN SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle); + nothrow @nogc SQLRETURN SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option); + nothrow @nogc SQLRETURN SQLGetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLengthPtr); + deprecated("ODBC API: SQLGetConnectOption is deprecated. Please use SQLGetConnectAttr instead.") deprecated nothrow @nogc SQLRETURN SQLGetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLPOINTER Value); + nothrow @nogc SQLRETURN SQLGetCursorName(SQLHSTMT StatementHandle, SQLCHAR* CursorName, SQLSMALLINT BufferLength, SQLSMALLINT* NameLengthPtr); + nothrow @nogc SQLRETURN SQLGetData(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLINTEGER BufferLength, SQLINTEGER* StrLen_or_IndPtr); + nothrow @nogc SQLRETURN SQLGetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLCHAR* Name, SQLSMALLINT BufferLength, SQLSMALLINT* StringLengthPtr, SQLSMALLINT* TypePtr, SQLSMALLINT* SubTypePtr, SQLINTEGER* LengthPtr, SQLSMALLINT* PrecisionPtr, SQLSMALLINT* ScalePtr, SQLSMALLINT* NullablePtr); + nothrow @nogc SQLRETURN SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT* StringLength); + nothrow @nogc SQLRETURN SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR* Sqlstate, SQLINTEGER* NativeError, SQLCHAR* MessageText, SQLSMALLINT BufferLength, SQLSMALLINT* TextLength); + nothrow @nogc SQLRETURN SQLGetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetFunctions(SQLHDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT* Supported); + nothrow @nogc SQLRETURN SQLGetInfo(SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT* StringLengthPtr); + nothrow @nogc SQLRETURN SQLGetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLength); + deprecated("ODBC API: SQLGetStmtOption is deprecated. Please use SQLGetStmtAttr instead.") deprecated nothrow @nogc SQLRETURN SQLGetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLPOINTER Value); + nothrow @nogc SQLRETURN SQLGetTypeInfo(SQLHSTMT StatementHandle, SQLSMALLINT DataType); + nothrow @nogc SQLRETURN SQLNumResultCols(SQLHSTMT StatementHandle, SQLSMALLINT* ColumnCount); + nothrow @nogc SQLRETURN SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER* Value); + nothrow @nogc SQLRETURN SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR* StatementText, SQLINTEGER TextLength); + nothrow @nogc SQLRETURN SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLINTEGER StrLen_or_Ind); + nothrow @nogc SQLRETURN SQLRowCount(SQLHSTMT StatementHandle, SQLINTEGER* RowCount); + nothrow @nogc SQLRETURN SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); + deprecated("ODBC API: SQLSetConnectOption is deprecated. Please use SQLSetConnectAttr instead.") deprecated nothrow @nogc SQLRETURN SQLSetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLUINTEGER Value); + nothrow @nogc SQLRETURN SQLSetCursorName(SQLHSTMT StatementHandle, SQLCHAR* CursorName, SQLSMALLINT NameLength); + nothrow @nogc SQLRETURN SQLSetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength); + nothrow @nogc SQLRETURN SQLSetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT Type, SQLSMALLINT SubType, SQLINTEGER Length, SQLSMALLINT Precision, SQLSMALLINT Scale, SQLPOINTER Data, SQLINTEGER* StringLength, SQLINTEGER* Indicator); + nothrow @nogc SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); + deprecated("ODBC API: SQLSetParam is deprecated. Please use SQLBindParameter instead.") deprecated nothrow @nogc SQLRETURN SQLSetParam(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLUINTEGER LengthPrecision, SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, SQLINTEGER* StrLen_or_Ind); + nothrow @nogc SQLRETURN SQLSetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); + deprecated("ODBC API: SQLSetStmtOption is deprecated. Please use SQLSetStmtAttr instead.") deprecated nothrow @nogc SQLRETURN SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLUINTEGER Value); + nothrow @nogc SQLRETURN SQLSpecialColumns(SQLHSTMT StatementHandle, SQLUSMALLINT IdentifierType, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Scope, SQLUSMALLINT Nullable); + nothrow @nogc SQLRETURN SQLStatistics(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Unique, SQLUSMALLINT Reserved); + nothrow @nogc SQLRETURN SQLTables(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLCHAR* TableType, SQLSMALLINT NameLength4); + nothrow @nogc SQLRETURN SQLTransact(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType); + alias SQLSTATE = ubyte[SQL_SQLSTATE_SIZE + 1]; + nothrow @nogc SQLRETURN SQLDriverConnect(SQLHDBC hdbc, SQLHWND hwnd, SQLCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut, SQLUSMALLINT fDriverCompletion); + nothrow @nogc SQLRETURN SQLBrowseConnect(SQLHDBC hdbc, SQLCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut); + nothrow @nogc SQLRETURN SQLBulkOperations(SQLHSTMT StatementHandle, SQLSMALLINT Operation); + nothrow @nogc SQLRETURN SQLColAttributes(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc, SQLINTEGER* pfDesc); + nothrow @nogc SQLRETURN SQLColumnPrivileges(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szTableName, SQLSMALLINT cchTableName, SQLCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLDescribeParam(SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT* pfSqlType, SQLUINTEGER* pcbParamDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLExtendedFetch(SQLHSTMT hstmt, SQLUSMALLINT fFetchType, SQLINTEGER irow, SQLUINTEGER* pcrow, SQLUSMALLINT* rgfRowStatus); + nothrow @nogc SQLRETURN SQLForeignKeys(SQLHSTMT hstmt, SQLCHAR* szPkCatalogName, SQLSMALLINT cchPkCatalogName, SQLCHAR* szPkSchemaName, SQLSMALLINT cchPkSchemaName, SQLCHAR* szPkTableName, SQLSMALLINT cchPkTableName, SQLCHAR* szFkCatalogName, SQLSMALLINT cchFkCatalogName, SQLCHAR* szFkSchemaName, SQLSMALLINT cchFkSchemaName, SQLCHAR* szFkTableName, SQLSMALLINT cchFkTableName); + nothrow @nogc SQLRETURN SQLMoreResults(SQLHSTMT hstmt); + nothrow @nogc SQLRETURN SQLNativeSql(SQLHDBC hdbc, SQLCHAR* szSqlStrIn, SQLINTEGER cchSqlStrIn, SQLCHAR* szSqlStr, SQLINTEGER cchSqlStrMax, SQLINTEGER* pcbSqlStr); + nothrow @nogc SQLRETURN SQLNumParams(SQLHSTMT hstmt, SQLSMALLINT* pcpar); + nothrow @nogc SQLRETURN SQLParamOptions(SQLHSTMT hstmt, SQLUINTEGER crow, SQLUINTEGER* pirow); + nothrow @nogc SQLRETURN SQLPrimaryKeys(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLProcedureColumns(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szProcName, SQLSMALLINT cchProcName, SQLCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLProcedures(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szProcName, SQLSMALLINT cchProcName); + nothrow @nogc SQLRETURN SQLSetPos(SQLHSTMT hstmt, SQLUSMALLINT irow, SQLUSMALLINT fOption, SQLUSMALLINT fLock); + nothrow @nogc SQLRETURN SQLTablePrivileges(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLDrivers(SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR* szDriverDesc, SQLSMALLINT cchDriverDescMax, SQLSMALLINT* pcchDriverDesc, SQLCHAR* szDriverAttributes, SQLSMALLINT cchDrvrAttrMax, SQLSMALLINT* pcchDrvrAttr); + nothrow @nogc SQLRETURN SQLBindParameter(SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT fParamType, SQLSMALLINT fCType, SQLSMALLINT fSqlType, SQLUINTEGER cbColDef, SQLSMALLINT ibScale, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE* OutputHandle); + nothrow @nogc SQLRETURN SQLGetNestedHandle(SQLHSTMT ParentStatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLHSTMT* OutputChildStatementHandle); + nothrow @nogc SQLRETURN SQLStructuredTypes(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TypeName, SQLSMALLINT NameLength3); + nothrow @nogc SQLRETURN SQLStructuredTypeColumns(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TypeName, SQLSMALLINT NameLength3, SQLCHAR* ColumnName, SQLSMALLINT NameLength4); + nothrow @nogc SQLRETURN SQLNextColumn(SQLHSTMT StatementHandle, SQLUSMALLINT* ColumnCount); + nothrow @nogc SQLRETURN SQLAllocHandleStd(SQLSMALLINT fHandleType, SQLHANDLE hInput, SQLHANDLE* phOutput); + nothrow @nogc SQLRETURN SQLColAttributeW(SQLHSTMT hstmt, SQLUSMALLINT iCol, SQLUSMALLINT iField, SQLPOINTER pCharAttr, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbCharAttr, SQLPOINTER pNumAttr); + nothrow @nogc SQLRETURN SQLColAttributesW(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc, SQLINTEGER* pfDesc); + nothrow @nogc SQLRETURN SQLConnectW(SQLHDBC hdbc, SQLWCHAR* szDSN, SQLSMALLINT cchDSN, SQLWCHAR* szUID, SQLSMALLINT cchUID, SQLWCHAR* szAuthStr, SQLSMALLINT cchAuthStr); + nothrow @nogc SQLRETURN SQLDescribeColW(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLWCHAR* szColName, SQLSMALLINT cchColNameMax, SQLSMALLINT* pcchColName, SQLSMALLINT* pfSqlType, SQLUINTEGER* pcbColDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLErrorW(SQLHENV henv, SQLHDBC hdbc, SQLHSTMT hstmt, SQLWCHAR* wszSqlState, SQLINTEGER* pfNativeError, SQLWCHAR* wszErrorMsg, SQLSMALLINT cchErrorMsgMax, SQLSMALLINT* pcchErrorMsg); + nothrow @nogc SQLRETURN SQLExecDirectW(SQLHSTMT hstmt, SQLWCHAR* szSqlStr, SQLINTEGER TextLength); + nothrow @nogc SQLRETURN SQLGetConnectAttrW(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLGetCursorNameW(SQLHSTMT hstmt, SQLWCHAR* szCursor, SQLSMALLINT cchCursorMax, SQLSMALLINT* pcchCursor); + nothrow @nogc SQLRETURN SQLSetDescFieldW(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength); + nothrow @nogc SQLRETURN SQLGetDescFieldW(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLSMALLINT iField, SQLPOINTER rgbValue, SQLINTEGER cbBufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetDescRecW(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLWCHAR* szName, SQLSMALLINT cchNameMax, SQLSMALLINT* pcchName, SQLSMALLINT* pfType, SQLSMALLINT* pfSubType, SQLINTEGER* pLength, SQLSMALLINT* pPrecision, SQLSMALLINT* pScale, SQLSMALLINT* pNullable); + nothrow @nogc SQLRETURN SQLGetDiagFieldW(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLSMALLINT fDiagField, SQLPOINTER rgbDiagInfo, SQLSMALLINT cbBufferLength, SQLSMALLINT* pcbStringLength); + nothrow @nogc SQLRETURN SQLGetDiagRecW(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLWCHAR* szSqlState, SQLINTEGER* pfNativeError, SQLWCHAR* szErrorMsg, SQLSMALLINT cchErrorMsgMax, SQLSMALLINT* pcchErrorMsg); + nothrow @nogc SQLRETURN SQLPrepareW(SQLHSTMT hstmt, SQLWCHAR* szSqlStr, SQLINTEGER cchSqlStr); + nothrow @nogc SQLRETURN SQLSetConnectAttrW(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValue); + nothrow @nogc SQLRETURN SQLSetCursorNameW(SQLHSTMT hstmt, SQLWCHAR* szCursor, SQLSMALLINT cchCursor); + nothrow @nogc SQLRETURN SQLColumnsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLGetConnectOptionW(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLPOINTER pvParam); + nothrow @nogc SQLRETURN SQLGetInfoW(SQLHDBC hdbc, SQLUSMALLINT fInfoType, SQLPOINTER rgbInfoValue, SQLSMALLINT cbInfoValueMax, SQLSMALLINT* pcbInfoValue); + nothrow @nogc SQLRETURN SQLGetTypeInfoW(SQLHSTMT StatementHandle, SQLSMALLINT DataType); + nothrow @nogc SQLRETURN SQLSetConnectOptionW(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLUINTEGER vParam); + nothrow @nogc SQLRETURN SQLSpecialColumnsW(SQLHSTMT hstmt, SQLUSMALLINT fColType, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLUSMALLINT fScope, SQLUSMALLINT fNullable); + nothrow @nogc SQLRETURN SQLStatisticsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLUSMALLINT fUnique, SQLUSMALLINT fAccuracy); + nothrow @nogc SQLRETURN SQLTablesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLWCHAR* szTableType, SQLSMALLINT cchTableType); + nothrow @nogc SQLRETURN SQLDataSourcesW(SQLHENV henv, SQLUSMALLINT fDirection, SQLWCHAR* szDSN, SQLSMALLINT cchDSNMax, SQLSMALLINT* pcchDSN, SQLWCHAR* wszDescription, SQLSMALLINT cchDescriptionMax, SQLSMALLINT* pcchDescription); + nothrow @nogc SQLRETURN SQLDriverConnectW(SQLHDBC hdbc, SQLHWND hwnd, SQLWCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLWCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut, SQLUSMALLINT fDriverCompletion); + nothrow @nogc SQLRETURN SQLBrowseConnectW(SQLHDBC hdbc, SQLWCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLWCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut); + nothrow @nogc SQLRETURN SQLColumnPrivilegesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLGetStmtAttrW(SQLHSTMT hstmt, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLSetStmtAttrW(SQLHSTMT hstmt, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax); + nothrow @nogc SQLRETURN SQLForeignKeysW(SQLHSTMT hstmt, SQLWCHAR* szPkCatalogName, SQLSMALLINT cchPkCatalogName, SQLWCHAR* szPkSchemaName, SQLSMALLINT cchPkSchemaName, SQLWCHAR* szPkTableName, SQLSMALLINT cchPkTableName, SQLWCHAR* szFkCatalogName, SQLSMALLINT cchFkCatalogName, SQLWCHAR* szFkSchemaName, SQLSMALLINT cchFkSchemaName, SQLWCHAR* szFkTableName, SQLSMALLINT cchFkTableName); + nothrow @nogc SQLRETURN SQLNativeSqlW(SQLHDBC hdbc, SQLWCHAR* szSqlStrIn, SQLINTEGER cchSqlStrIn, SQLWCHAR* szSqlStr, SQLINTEGER cchSqlStrMax, SQLINTEGER* pcchSqlStr); + nothrow @nogc SQLRETURN SQLPrimaryKeysW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLProcedureColumnsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szProcName, SQLSMALLINT cchProcName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLProceduresW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szProcName, SQLSMALLINT cchProcName); + nothrow @nogc SQLRETURN SQLTablePrivilegesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLDriversW(SQLHENV henv, SQLUSMALLINT fDirection, SQLWCHAR* szDriverDesc, SQLSMALLINT cchDriverDescMax, SQLSMALLINT* pcchDriverDesc, SQLWCHAR* szDriverAttributes, SQLSMALLINT cchDrvrAttrMax, SQLSMALLINT* pcchDrvrAttr); + nothrow @nogc SQLRETURN SQLStructuredTypesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTypeName, SQLSMALLINT cchTypeName); + nothrow @nogc SQLRETURN SQLStructuredTypeColumnsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTypeName, SQLSMALLINT cchTypeName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLColAttributeA(SQLHSTMT hstmt, SQLSMALLINT iCol, SQLSMALLINT iField, SQLPOINTER pCharAttr, SQLSMALLINT cbCharAttrMax, SQLSMALLINT* pcbCharAttr, SQLPOINTER pNumAttr); + nothrow @nogc SQLRETURN SQLColAttributesA(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc, SQLINTEGER* pfDesc); + nothrow @nogc SQLRETURN SQLConnectA(SQLHDBC hdbc, SQLCHAR* szDSN, SQLSMALLINT cbDSN, SQLCHAR* szUID, SQLSMALLINT cbUID, SQLCHAR* szAuthStr, SQLSMALLINT cbAuthStr); + nothrow @nogc SQLRETURN SQLDescribeColA(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLCHAR* szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT* pcbColName, SQLSMALLINT* pfSqlType, SQLUINTEGER* pcbColDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLErrorA(SQLHENV henv, SQLHDBC hdbc, SQLHSTMT hstmt, SQLCHAR* szSqlState, SQLINTEGER* pfNativeError, SQLCHAR* szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT* pcbErrorMsg); + nothrow @nogc SQLRETURN SQLExecDirectA(SQLHSTMT hstmt, SQLCHAR* szSqlStr, SQLINTEGER cbSqlStr); + nothrow @nogc SQLRETURN SQLGetConnectAttrA(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLGetCursorNameA(SQLHSTMT hstmt, SQLCHAR* szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT* pcbCursor); + nothrow @nogc SQLRETURN SQLGetDescFieldA(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLSMALLINT iField, SQLPOINTER rgbValue, SQLINTEGER cbBufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetDescRecA(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLCHAR* szName, SQLSMALLINT cbNameMax, SQLSMALLINT* pcbName, SQLSMALLINT* pfType, SQLSMALLINT* pfSubType, SQLINTEGER* pLength, SQLSMALLINT* pPrecision, SQLSMALLINT* pScale, SQLSMALLINT* pNullable); + nothrow @nogc SQLRETURN SQLGetDiagFieldA(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLSMALLINT fDiagField, SQLPOINTER rgbDiagInfo, SQLSMALLINT cbDiagInfoMax, SQLSMALLINT* pcbDiagInfo); + nothrow @nogc SQLRETURN SQLGetDiagRecA(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLCHAR* szSqlState, SQLINTEGER* pfNativeError, SQLCHAR* szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT* pcbErrorMsg); + nothrow @nogc SQLRETURN SQLGetStmtAttrA(SQLHSTMT hstmt, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLGetTypeInfoA(SQLHSTMT StatementHandle, SQLSMALLINT DataType); + nothrow @nogc SQLRETURN SQLPrepareA(SQLHSTMT hstmt, SQLCHAR* szSqlStr, SQLINTEGER cbSqlStr); + nothrow @nogc SQLRETURN SQLSetConnectAttrA(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValue); + nothrow @nogc SQLRETURN SQLSetCursorNameA(SQLHSTMT hstmt, SQLCHAR* szCursor, SQLSMALLINT cbCursor); + nothrow @nogc SQLRETURN SQLColumnsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + nothrow @nogc SQLRETURN SQLGetConnectOptionA(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLPOINTER pvParam); + nothrow @nogc SQLRETURN SQLGetInfoA(SQLHDBC hdbc, SQLUSMALLINT fInfoType, SQLPOINTER rgbInfoValue, SQLSMALLINT cbInfoValueMax, SQLSMALLINT* pcbInfoValue); + nothrow @nogc SQLRETURN SQLGetStmtOptionA(SQLHSTMT hstmt, SQLUSMALLINT fOption, SQLPOINTER pvParam); + nothrow @nogc SQLRETURN SQLSetConnectOptionA(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLUINTEGER vParam); + nothrow @nogc SQLRETURN SQLSetStmtOptionA(SQLHSTMT hstmt, SQLUSMALLINT fOption, SQLUINTEGER vParam); + nothrow @nogc SQLRETURN SQLSpecialColumnsA(SQLHSTMT hstmt, SQLUSMALLINT fColType, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLUSMALLINT fScope, SQLUSMALLINT fNullable); + nothrow @nogc SQLRETURN SQLStatisticsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLUSMALLINT fUnique, SQLUSMALLINT fAccuracy); + nothrow @nogc SQLRETURN SQLTablesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLCHAR* szTableType, SQLSMALLINT cbTableType); + nothrow @nogc SQLRETURN SQLDataSourcesA(SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR* szDSN, SQLSMALLINT cbDSNMax, SQLSMALLINT* pcbDSN, SQLCHAR* szDescription, SQLSMALLINT cbDescriptionMax, SQLSMALLINT* pcbDescription); + nothrow @nogc SQLRETURN SQLDriverConnectA(SQLHDBC hdbc, SQLHWND hwnd, SQLCHAR* szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT* pcbConnStrOut, SQLUSMALLINT fDriverCompletion); + nothrow @nogc SQLRETURN SQLBrowseConnectA(SQLHDBC hdbc, SQLCHAR* szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT* pcbConnStrOut); + nothrow @nogc SQLRETURN SQLColumnPrivilegesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + nothrow @nogc SQLRETURN SQLDescribeParamA(SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT* pfSqlType, SQLUINTEGER* pcbParamDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLForeignKeysA(SQLHSTMT hstmt, SQLCHAR* szPkCatalogName, SQLSMALLINT cbPkCatalogName, SQLCHAR* szPkSchemaName, SQLSMALLINT cbPkSchemaName, SQLCHAR* szPkTableName, SQLSMALLINT cbPkTableName, SQLCHAR* szFkCatalogName, SQLSMALLINT cbFkCatalogName, SQLCHAR* szFkSchemaName, SQLSMALLINT cbFkSchemaName, SQLCHAR* szFkTableName, SQLSMALLINT cbFkTableName); + nothrow @nogc SQLRETURN SQLNativeSqlA(SQLHDBC hdbc, SQLCHAR* szSqlStrIn, SQLINTEGER cbSqlStrIn, SQLCHAR* szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER* pcbSqlStr); + nothrow @nogc SQLRETURN SQLPrimaryKeysA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName); + nothrow @nogc SQLRETURN SQLProcedureColumnsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szProcName, SQLSMALLINT cbProcName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + nothrow @nogc SQLRETURN SQLProceduresA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szProcName, SQLSMALLINT cbProcName); + nothrow @nogc SQLRETURN SQLTablePrivilegesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName); + nothrow @nogc SQLRETURN SQLDriversA(SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR* szDriverDesc, SQLSMALLINT cbDriverDescMax, SQLSMALLINT* pcbDriverDesc, SQLCHAR* szDriverAttributes, SQLSMALLINT cbDrvrAttrMax, SQLSMALLINT* pcbDrvrAttr); + nothrow @nogc SQLRETURN SQLStructuredTypesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTypeName, SQLSMALLINT cbTypeName); + nothrow @nogc SQLRETURN SQLStructuredTypeColumnsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTypeName, SQLSMALLINT cbTypeName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + enum SQLINTEGER ODBCVER = 1024; + enum SQLINTEGER SQL_MAX_NUMERIC_LEN = 16; + auto SQL_NULL_DATA()() + { + return -1; + } + auto SQL_DATA_AT_EXEC()() + { + return -2; + } + enum SQLINTEGER SQL_SUCCESS = 0; + enum SQLINTEGER SQL_SUCCESS_WITH_INFO = 1; + enum SQLINTEGER SQL_NO_DATA = 100; + enum SQLINTEGER SQL_PARAM_DATA_AVAILABLE = 101; + auto SQL_ERROR()() + { + return -1; + } + auto SQL_INVALID_HANDLE()() + { + return -2; + } + enum SQLINTEGER SQL_STILL_EXECUTING = 2; + enum SQLINTEGER SQL_NEED_DATA = 99; + auto SQL_SUCCEEDED(__MP1)(__MP1 rc) + { + return (rc & ~1) == 0; + } + auto SQL_NTS()() + { + return -3; + } + auto SQL_NTSL()() + { + return -3; + } + enum SQLINTEGER SQL_MAX_MESSAGE_LENGTH = 512; + enum SQLINTEGER SQL_DATE_LEN = 10; + enum SQLINTEGER SQL_TIME_LEN = 8; + enum SQLINTEGER SQL_TIMESTAMP_LEN = 19; + enum SQLINTEGER SQL_HANDLE_ENV = 1; + enum SQLINTEGER SQL_HANDLE_DBC = 2; + enum SQLINTEGER SQL_HANDLE_STMT = 3; + enum SQLINTEGER SQL_HANDLE_DESC = 4; + enum SQLINTEGER SQL_ATTR_OUTPUT_NTS = 10001; + enum SQLINTEGER SQL_ATTR_AUTO_IPD = 10001; + enum SQLINTEGER SQL_ATTR_METADATA_ID = 10014; + enum SQLINTEGER SQL_ATTR_APP_ROW_DESC = 10010; + enum SQLINTEGER SQL_ATTR_APP_PARAM_DESC = 10011; + enum SQLINTEGER SQL_ATTR_IMP_ROW_DESC = 10012; + enum SQLINTEGER SQL_ATTR_IMP_PARAM_DESC = 10013; + auto SQL_ATTR_CURSOR_SCROLLABLE()() + { + return -1; + } + auto SQL_ATTR_CURSOR_SENSITIVITY()() + { + return -2; + } + enum SQLINTEGER SQL_NONSCROLLABLE = 0; + enum SQLINTEGER SQL_SCROLLABLE = 1; + enum SQLINTEGER SQL_DESC_COUNT = 1001; + enum SQLINTEGER SQL_DESC_TYPE = 1002; + enum SQLINTEGER SQL_DESC_LENGTH = 1003; + enum SQLINTEGER SQL_DESC_OCTET_LENGTH_PTR = 1004; + enum SQLINTEGER SQL_DESC_PRECISION = 1005; + enum SQLINTEGER SQL_DESC_SCALE = 1006; + enum SQLINTEGER SQL_DESC_DATETIME_INTERVAL_CODE = 1007; + enum SQLINTEGER SQL_DESC_NULLABLE = 1008; + enum SQLINTEGER SQL_DESC_INDICATOR_PTR = 1009; + enum SQLINTEGER SQL_DESC_DATA_PTR = 1010; + enum SQLINTEGER SQL_DESC_NAME = 1011; + enum SQLINTEGER SQL_DESC_UNNAMED = 1012; + enum SQLINTEGER SQL_DESC_OCTET_LENGTH = 1013; + enum SQLINTEGER SQL_DESC_ALLOC_TYPE = 1099; + enum SQLINTEGER SQL_DESC_CHARACTER_SET_CATALOG = 1018; + enum SQLINTEGER SQL_DESC_CHARACTER_SET_SCHEMA = 1019; + enum SQLINTEGER SQL_DESC_CHARACTER_SET_NAME = 1020; + enum SQLINTEGER SQL_DESC_COLLATION_CATALOG = 1015; + enum SQLINTEGER SQL_DESC_COLLATION_SCHEMA = 1016; + enum SQLINTEGER SQL_DESC_COLLATION_NAME = 1017; + enum SQLINTEGER SQL_DESC_USER_DEFINED_TYPE_CATALOG = 1026; + enum SQLINTEGER SQL_DESC_USER_DEFINED_TYPE_SCHEMA = 1027; + enum SQLINTEGER SQL_DESC_USER_DEFINED_TYPE_NAME = 1028; + enum SQLINTEGER SQL_DIAG_RETURNCODE = 1; + enum SQLINTEGER SQL_DIAG_NUMBER = 2; + enum SQLINTEGER SQL_DIAG_ROW_COUNT = 3; + enum SQLINTEGER SQL_DIAG_SQLSTATE = 4; + enum SQLINTEGER SQL_DIAG_NATIVE = 5; + enum SQLINTEGER SQL_DIAG_MESSAGE_TEXT = 6; + enum SQLINTEGER SQL_DIAG_DYNAMIC_FUNCTION = 7; + enum SQLINTEGER SQL_DIAG_CLASS_ORIGIN = 8; + enum SQLINTEGER SQL_DIAG_SUBCLASS_ORIGIN = 9; + enum SQLINTEGER SQL_DIAG_CONNECTION_NAME = 10; + enum SQLINTEGER SQL_DIAG_SERVER_NAME = 11; + enum SQLINTEGER SQL_DIAG_DYNAMIC_FUNCTION_CODE = 12; + enum SQLINTEGER SQL_DIAG_ALTER_DOMAIN = 3; + enum SQLINTEGER SQL_DIAG_ALTER_TABLE = 4; + enum SQLINTEGER SQL_DIAG_CALL = 7; + enum SQLINTEGER SQL_DIAG_CREATE_ASSERTION = 6; + enum SQLINTEGER SQL_DIAG_CREATE_CHARACTER_SET = 8; + enum SQLINTEGER SQL_DIAG_CREATE_COLLATION = 10; + enum SQLINTEGER SQL_DIAG_CREATE_DOMAIN = 23; + auto SQL_DIAG_CREATE_INDEX()() + { + return -1; + } + enum SQLINTEGER SQL_DIAG_CREATE_SCHEMA = 64; + enum SQLINTEGER SQL_DIAG_CREATE_TABLE = 77; + enum SQLINTEGER SQL_DIAG_CREATE_TRANSLATION = 79; + enum SQLINTEGER SQL_DIAG_CREATE_VIEW = 84; + enum SQLINTEGER SQL_DIAG_DELETE_WHERE = 19; + enum SQLINTEGER SQL_DIAG_DROP_ASSERTION = 24; + enum SQLINTEGER SQL_DIAG_DROP_CHARACTER_SET = 25; + enum SQLINTEGER SQL_DIAG_DROP_COLLATION = 26; + enum SQLINTEGER SQL_DIAG_DROP_DOMAIN = 27; + auto SQL_DIAG_DROP_INDEX()() + { + return -2; + } + enum SQLINTEGER SQL_DIAG_DROP_SCHEMA = 31; + enum SQLINTEGER SQL_DIAG_DROP_TABLE = 32; + enum SQLINTEGER SQL_DIAG_DROP_TRANSLATION = 33; + enum SQLINTEGER SQL_DIAG_DROP_VIEW = 36; + enum SQLINTEGER SQL_DIAG_DYNAMIC_DELETE_CURSOR = 38; + enum SQLINTEGER SQL_DIAG_DYNAMIC_UPDATE_CURSOR = 81; + enum SQLINTEGER SQL_DIAG_GRANT = 48; + enum SQLINTEGER SQL_DIAG_INSERT = 50; + enum SQLINTEGER SQL_DIAG_REVOKE = 59; + enum SQLINTEGER SQL_DIAG_SELECT_CURSOR = 85; + enum SQLINTEGER SQL_DIAG_UNKNOWN_STATEMENT = 0; + enum SQLINTEGER SQL_DIAG_UPDATE_WHERE = 82; + enum SQLINTEGER SQL_UNKNOWN_TYPE = 0; + enum SQLINTEGER SQL_CHAR = 1; + enum SQLINTEGER SQL_NUMERIC = 2; + enum SQLINTEGER SQL_DECIMAL = 3; + enum SQLINTEGER SQL_INTEGER = 4; + enum SQLINTEGER SQL_SMALLINT = 5; + enum SQLINTEGER SQL_FLOAT = 6; + enum SQLINTEGER SQL_REAL = 7; + enum SQLINTEGER SQL_DOUBLE = 8; + enum SQLINTEGER SQL_DATETIME = 9; + enum SQLINTEGER SQL_VARCHAR = 12; + enum SQLINTEGER SQL_UDT = 17; + enum SQLINTEGER SQL_ROW = 19; + enum SQLINTEGER SQL_ARRAY = 50; + enum SQLINTEGER SQL_MULTISET = 55; + enum SQLINTEGER SQL_TYPE_DATE = 91; + enum SQLINTEGER SQL_TYPE_TIME = 92; + enum SQLINTEGER SQL_TYPE_TIMESTAMP = 93; + enum SQLINTEGER SQL_TYPE_TIME_WITH_TIMEZONE = 94; + enum SQLINTEGER SQL_TYPE_TIMESTAMP_WITH_TIMEZONE = 95; + enum SQLINTEGER SQL_UNSPECIFIED = 0; + enum SQLINTEGER SQL_INSENSITIVE = 1; + enum SQLINTEGER SQL_SENSITIVE = 2; + enum SQLINTEGER SQL_ALL_TYPES = 0; + enum SQLINTEGER SQL_DEFAULT = 99; + auto SQL_ARD_TYPE()() + { + return -99; + } + auto SQL_APD_TYPE()() + { + return -100; + } + enum SQLINTEGER SQL_CODE_DATE = 1; + enum SQLINTEGER SQL_CODE_TIME = 2; + enum SQLINTEGER SQL_CODE_TIMESTAMP = 3; + enum SQLINTEGER SQL_CODE_TIME_WITH_TIMEZONE = 4; + enum SQLINTEGER SQL_CODE_TIMESTAMP_WITH_TIMEZONE = 5; + enum SQLINTEGER SQL_FALSE = 0; + enum SQLINTEGER SQL_TRUE = 1; + enum SQLINTEGER SQL_NO_NULLS = 0; + enum SQLINTEGER SQL_NULLABLE = 1; + enum SQLINTEGER SQL_NULLABLE_UNKNOWN = 2; + enum SQLINTEGER SQL_PRED_NONE = 0; + enum SQLINTEGER SQL_PRED_CHAR = 1; + enum SQLINTEGER SQL_PRED_BASIC = 2; + enum SQLINTEGER SQL_NAMED = 0; + enum SQLINTEGER SQL_UNNAMED = 1; + enum SQLINTEGER SQL_DESC_ALLOC_AUTO = 1; + enum SQLINTEGER SQL_DESC_ALLOC_USER = 2; + enum SQLINTEGER SQL_CLOSE = 0; + enum SQLINTEGER SQL_DROP = 1; + enum SQLINTEGER SQL_UNBIND = 2; + enum SQLINTEGER SQL_RESET_PARAMS = 3; + enum SQLINTEGER SQL_FETCH_NEXT = 1; + enum SQLINTEGER SQL_FETCH_FIRST = 2; + enum SQLINTEGER SQL_FETCH_LAST = 3; + enum SQLINTEGER SQL_FETCH_PRIOR = 4; + enum SQLINTEGER SQL_FETCH_ABSOLUTE = 5; + enum SQLINTEGER SQL_FETCH_RELATIVE = 6; + enum SQLINTEGER SQL_COMMIT = 0; + enum SQLINTEGER SQL_ROLLBACK = 1; + enum SQLINTEGER SQL_NULL_HENV = 0; + enum SQLINTEGER SQL_NULL_HDBC = 0; + enum SQLINTEGER SQL_NULL_HSTMT = 0; + enum SQLINTEGER SQL_NULL_HDESC = 0; + enum SQLINTEGER SQL_NULL_HANDLE = 0; + enum SQLINTEGER SQL_SCOPE_CURROW = 0; + enum SQLINTEGER SQL_SCOPE_TRANSACTION = 1; + enum SQLINTEGER SQL_SCOPE_SESSION = 2; + enum SQLINTEGER SQL_PC_UNKNOWN = 0; + enum SQLINTEGER SQL_PC_NON_PSEUDO = 1; + enum SQLINTEGER SQL_PC_PSEUDO = 2; + enum SQLINTEGER SQL_ROW_IDENTIFIER = 1; + enum SQLINTEGER SQL_INDEX_UNIQUE = 0; + enum SQLINTEGER SQL_INDEX_ALL = 1; + enum SQLINTEGER SQL_INDEX_CLUSTERED = 1; + enum SQLINTEGER SQL_INDEX_HASHED = 2; + enum SQLINTEGER SQL_INDEX_OTHER = 3; + enum SQLINTEGER SQL_MAX_DRIVER_CONNECTIONS = 0; + enum SQLINTEGER SQL_MAX_CONCURRENT_ACTIVITIES = 1; + enum SQLINTEGER SQL_DATA_SOURCE_NAME = 2; + enum SQLINTEGER SQL_FETCH_DIRECTION = 8; + enum SQLINTEGER SQL_SERVER_NAME = 13; + enum SQLINTEGER SQL_SEARCH_PATTERN_ESCAPE = 14; + enum SQLINTEGER SQL_DBMS_NAME = 17; + enum SQLINTEGER SQL_DBMS_VER = 18; + enum SQLINTEGER SQL_ACCESSIBLE_TABLES = 19; + enum SQLINTEGER SQL_ACCESSIBLE_PROCEDURES = 20; + enum SQLINTEGER SQL_CURSOR_COMMIT_BEHAVIOR = 23; + enum SQLINTEGER SQL_DATA_SOURCE_READ_ONLY = 25; + enum SQLINTEGER SQL_DEFAULT_TXN_ISOLATION = 26; + enum SQLINTEGER SQL_IDENTIFIER_CASE = 28; + enum SQLINTEGER SQL_IDENTIFIER_QUOTE_CHAR = 29; + enum SQLINTEGER SQL_MAX_COLUMN_NAME_LEN = 30; + enum SQLINTEGER SQL_MAX_CURSOR_NAME_LEN = 31; + enum SQLINTEGER SQL_MAX_SCHEMA_NAME_LEN = 32; + enum SQLINTEGER SQL_MAX_CATALOG_NAME_LEN = 34; + enum SQLINTEGER SQL_MAX_TABLE_NAME_LEN = 35; + enum SQLINTEGER SQL_SCROLL_CONCURRENCY = 43; + enum SQLINTEGER SQL_TXN_CAPABLE = 46; + enum SQLINTEGER SQL_USER_NAME = 47; + enum SQLINTEGER SQL_TXN_ISOLATION_OPTION = 72; + enum SQLINTEGER SQL_INTEGRITY = 73; + enum SQLINTEGER SQL_GETDATA_EXTENSIONS = 81; + enum SQLINTEGER SQL_NULL_COLLATION = 85; + enum SQLINTEGER SQL_ALTER_TABLE = 86; + enum SQLINTEGER SQL_ORDER_BY_COLUMNS_IN_SELECT = 90; + enum SQLINTEGER SQL_SPECIAL_CHARACTERS = 94; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_GROUP_BY = 97; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_INDEX = 98; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_ORDER_BY = 99; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_SELECT = 100; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_TABLE = 101; + enum SQLINTEGER SQL_MAX_INDEX_SIZE = 102; + enum SQLINTEGER SQL_MAX_ROW_SIZE = 104; + enum SQLINTEGER SQL_MAX_STATEMENT_LEN = 105; + enum SQLINTEGER SQL_MAX_TABLES_IN_SELECT = 106; + enum SQLINTEGER SQL_MAX_USER_NAME_LEN = 107; + enum SQLINTEGER SQL_OJ_CAPABILITIES = 115; + enum SQLINTEGER SQL_XOPEN_CLI_YEAR = 10000; + enum SQLINTEGER SQL_CURSOR_SENSITIVITY = 10001; + enum SQLINTEGER SQL_DESCRIBE_PARAMETER = 10002; + enum SQLINTEGER SQL_CATALOG_NAME = 10003; + enum SQLINTEGER SQL_COLLATION_SEQ = 10004; + enum SQLINTEGER SQL_MAX_IDENTIFIER_LEN = 10005; + enum SQLINTEGER SQL_AT_ADD_COLUMN = 1; + enum SQLINTEGER SQL_AT_DROP_COLUMN = 2; + enum SQLINTEGER SQL_AT_ADD_CONSTRAINT = 8; + enum SQLINTEGER SQL_AM_NONE = 0; + enum SQLINTEGER SQL_AM_CONNECTION = 1; + enum SQLINTEGER SQL_AM_STATEMENT = 2; + enum SQLINTEGER SQL_CB_DELETE = 0; + enum SQLINTEGER SQL_CB_CLOSE = 1; + enum SQLINTEGER SQL_CB_PRESERVE = 2; + enum SQLINTEGER SQL_FD_FETCH_NEXT = 1; + enum SQLINTEGER SQL_FD_FETCH_FIRST = 2; + enum SQLINTEGER SQL_FD_FETCH_LAST = 4; + enum SQLINTEGER SQL_FD_FETCH_PRIOR = 8; + enum SQLINTEGER SQL_FD_FETCH_ABSOLUTE = 16; + enum SQLINTEGER SQL_FD_FETCH_RELATIVE = 32; + enum SQLINTEGER SQL_GD_ANY_COLUMN = 1; + enum SQLINTEGER SQL_GD_ANY_ORDER = 2; + enum SQLINTEGER SQL_IC_UPPER = 1; + enum SQLINTEGER SQL_IC_LOWER = 2; + enum SQLINTEGER SQL_IC_SENSITIVE = 3; + enum SQLINTEGER SQL_IC_MIXED = 4; + enum SQLINTEGER SQL_OJ_LEFT = 1; + enum SQLINTEGER SQL_OJ_RIGHT = 2; + enum SQLINTEGER SQL_OJ_FULL = 4; + enum SQLINTEGER SQL_OJ_NESTED = 8; + enum SQLINTEGER SQL_OJ_NOT_ORDERED = 16; + enum SQLINTEGER SQL_OJ_INNER = 32; + enum SQLINTEGER SQL_OJ_ALL_COMPARISON_OPS = 64; + enum SQLINTEGER SQL_SCCO_READ_ONLY = 1; + enum SQLINTEGER SQL_SCCO_LOCK = 2; + enum SQLINTEGER SQL_SCCO_OPT_ROWVER = 4; + enum SQLINTEGER SQL_SCCO_OPT_VALUES = 8; + enum SQLINTEGER SQL_TC_NONE = 0; + enum SQLINTEGER SQL_TC_DML = 1; + enum SQLINTEGER SQL_TC_ALL = 2; + enum SQLINTEGER SQL_TC_DDL_COMMIT = 3; + enum SQLINTEGER SQL_TC_DDL_IGNORE = 4; + enum SQLINTEGER SQL_TXN_READ_UNCOMMITTED = 1; + enum SQLINTEGER SQL_TXN_READ_COMMITTED = 2; + enum SQLINTEGER SQL_TXN_REPEATABLE_READ = 4; + enum SQLINTEGER SQL_TXN_SERIALIZABLE = 8; + enum SQLINTEGER SQL_NC_HIGH = 0; + enum SQLINTEGER SQL_NC_LOW = 1; + enum SQLINTEGER SQL_SPEC_MAJOR = 4; + enum SQLINTEGER SQL_SPEC_MINOR = 0; + enum SQL_SPEC_STRING = "04.00"; + enum SQLINTEGER SQL_SQLSTATE_SIZE = 5; + enum SQLINTEGER SQL_MAX_DSN_LENGTH = 32; + enum SQLINTEGER SQL_MAX_OPTION_STRING_LENGTH = 256; + enum SQLINTEGER SQL_DATA_AVAILABLE = 102; + enum SQLINTEGER SQL_METADATA_CHANGED = 103; + enum SQLINTEGER SQL_MORE_DATA = 104; + enum SQLINTEGER SQL_HANDLE_SENV = 5; + enum SQLINTEGER SQL_ATTR_ODBC_VERSION = 200; + enum SQLINTEGER SQL_ATTR_CONNECTION_POOLING = 201; + enum SQLINTEGER SQL_ATTR_CP_MATCH = 202; + enum SQLINTEGER SQL_ATTR_APPLICATION_KEY = 203; + enum SQLUINTEGER SQL_CP_OFF = 0u; + enum SQLUINTEGER SQL_CP_ONE_PER_DRIVER = 1u; + enum SQLUINTEGER SQL_CP_ONE_PER_HENV = 2u; + enum SQLUINTEGER SQL_CP_DRIVER_AWARE = 3u; + enum SQLUINTEGER SQL_CP_STRICT_MATCH = 0u; + enum SQLUINTEGER SQL_CP_RELAXED_MATCH = 1u; + enum SQLUINTEGER SQL_OV_ODBC2 = 2u; + enum SQLUINTEGER SQL_OV_ODBC3 = 3u; + enum SQLUINTEGER SQL_OV_ODBC3_80 = 380u; + enum SQLUINTEGER SQL_OV_ODBC4 = 400u; + enum SQLINTEGER SQL_ACCESS_MODE = 101; + enum SQLINTEGER SQL_AUTOCOMMIT = 102; + enum SQLINTEGER SQL_LOGIN_TIMEOUT = 103; + enum SQLINTEGER SQL_OPT_TRACE = 104; + enum SQLINTEGER SQL_OPT_TRACEFILE = 105; + enum SQLINTEGER SQL_TRANSLATE_DLL = 106; + enum SQLINTEGER SQL_TRANSLATE_OPTION = 107; + enum SQLINTEGER SQL_TXN_ISOLATION = 108; + enum SQLINTEGER SQL_CURRENT_QUALIFIER = 109; + enum SQLINTEGER SQL_ODBC_CURSORS = 110; + enum SQLINTEGER SQL_QUIET_MODE = 111; + enum SQLINTEGER SQL_PACKET_SIZE = 112; + enum SQLINTEGER SQL_ATTR_CONNECTION_TIMEOUT = 113; + enum SQLINTEGER SQL_ATTR_DISCONNECT_BEHAVIOR = 114; + enum SQLINTEGER SQL_ATTR_ENLIST_IN_DTC = 1207; + enum SQLINTEGER SQL_ATTR_ENLIST_IN_XA = 1208; + enum SQLINTEGER SQL_ATTR_CONNECTION_DEAD = 1209; + enum SQLINTEGER SQL_ATTR_ANSI_APP = 115; + enum SQLINTEGER SQL_ATTR_RESET_CONNECTION = 116; + enum SQLINTEGER SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE = 117; + enum SQLINTEGER SQL_ATTR_ASYNC_DBC_EVENT = 119; + enum SQLINTEGER SQL_ATTR_CREDENTIALS = 122; + enum SQLINTEGER SQL_ATTR_REFRESH_CONNECTION = 123; + enum SQLUINTEGER SQL_MODE_READ_WRITE = 0u; + enum SQLUINTEGER SQL_MODE_READ_ONLY = 1u; + enum SQLUINTEGER SQL_AUTOCOMMIT_OFF = 0u; + enum SQLUINTEGER SQL_AUTOCOMMIT_ON = 1u; + enum SQLUINTEGER SQL_LOGIN_TIMEOUT_DEFAULT = 15u; + enum SQLUINTEGER SQL_OPT_TRACE_OFF = 0u; + enum SQLUINTEGER SQL_OPT_TRACE_ON = 1u; + enum SQL_OPT_TRACE_FILE_DEFAULT = "\\SQL.LOG"; + enum SQLUINTEGER SQL_CUR_USE_IF_NEEDED = 0u; + enum SQLUINTEGER SQL_CUR_USE_ODBC = 1u; + enum SQLUINTEGER SQL_CUR_USE_DRIVER = 2u; + enum SQLUINTEGER SQL_DB_RETURN_TO_POOL = 0u; + enum SQLUINTEGER SQL_DB_DISCONNECT = 1u; + enum SQLINTEGER SQL_DTC_DONE = 0; + enum SQLINTEGER SQL_CD_TRUE = 1; + enum SQLINTEGER SQL_CD_FALSE = 0; + enum SQLINTEGER SQL_AA_TRUE = 1; + enum SQLINTEGER SQL_AA_FALSE = 0; + enum SQLUINTEGER SQL_RESET_CONNECTION_YES = 1u; + enum SQLUINTEGER SQL_ASYNC_DBC_ENABLE_ON = 1u; + enum SQLUINTEGER SQL_ASYNC_DBC_ENABLE_OFF = 0u; + enum SQLINTEGER SQL_REFRESH_NOW = -1; + enum SQLINTEGER SQL_REFRESH_AUTO = 0; + enum SQLINTEGER SQL_REFRESH_MANUAL = 1; + enum SQLINTEGER SQL_QUERY_TIMEOUT = 0; + enum SQLINTEGER SQL_MAX_ROWS = 1; + enum SQLINTEGER SQL_NOSCAN = 2; + enum SQLINTEGER SQL_MAX_LENGTH = 3; + enum SQLINTEGER SQL_ASYNC_ENABLE = 4; + enum SQLINTEGER SQL_BIND_TYPE = 5; + enum SQLINTEGER SQL_CURSOR_TYPE = 6; + enum SQLINTEGER SQL_CONCURRENCY = 7; + enum SQLINTEGER SQL_KEYSET_SIZE = 8; + enum SQLINTEGER SQL_ROWSET_SIZE = 9; + enum SQLINTEGER SQL_SIMULATE_CURSOR = 10; + enum SQLINTEGER SQL_RETRIEVE_DATA = 11; + enum SQLINTEGER SQL_USE_BOOKMARKS = 12; + enum SQLINTEGER SQL_GET_BOOKMARK = 13; + enum SQLINTEGER SQL_ROW_NUMBER = 14; + enum SQLINTEGER SQL_ATTR_ENABLE_AUTO_IPD = 15; + enum SQLINTEGER SQL_ATTR_FETCH_BOOKMARK_PTR = 16; + enum SQLINTEGER SQL_ATTR_PARAM_BIND_OFFSET_PTR = 17; + enum SQLINTEGER SQL_ATTR_PARAM_BIND_TYPE = 18; + enum SQLINTEGER SQL_ATTR_PARAM_OPERATION_PTR = 19; + enum SQLINTEGER SQL_ATTR_PARAM_STATUS_PTR = 20; + enum SQLINTEGER SQL_ATTR_PARAMS_PROCESSED_PTR = 21; + enum SQLINTEGER SQL_ATTR_PARAMSET_SIZE = 22; + enum SQLINTEGER SQL_ATTR_ROW_BIND_OFFSET_PTR = 23; + enum SQLINTEGER SQL_ATTR_ROW_OPERATION_PTR = 24; + enum SQLINTEGER SQL_ATTR_ROW_STATUS_PTR = 25; + enum SQLINTEGER SQL_ATTR_ROWS_FETCHED_PTR = 26; + enum SQLINTEGER SQL_ATTR_ROW_ARRAY_SIZE = 27; + enum SQLINTEGER SQL_ATTR_ASYNC_STMT_EVENT = 29; + enum SQLINTEGER SQL_ATTR_SAMPLE_SIZE = 30; + enum SQLINTEGER SQL_ATTR_DYNAMIC_COLUMNS = 31; + enum SQLINTEGER SQL_ATTR_TYPE_EXCEPTION_BEHAVIOR = 32; + enum SQLINTEGER SQL_ATTR_LENGTH_EXCEPTION_BEHAVIOR = 33; + enum SQLINTEGER SQL_TE_ERROR = 1; + enum SQLINTEGER SQL_TE_CONTINUE = 2; + enum SQLINTEGER SQL_TE_REPORT = 3; + enum SQLINTEGER SQL_LE_CONTINUE = 1; + enum SQLINTEGER SQL_LE_REPORT = 2; + auto SQL_IS_POINTER()() + { + return -4; + } + auto SQL_IS_UINTEGER()() + { + return -5; + } + auto SQL_IS_INTEGER()() + { + return -6; + } + auto SQL_IS_USMALLINT()() + { + return -7; + } + auto SQL_IS_SMALLINT()() + { + return -8; + } + enum SQLUINTEGER SQL_PARAM_BIND_BY_COLUMN = 0u; + enum SQLUINTEGER SQL_QUERY_TIMEOUT_DEFAULT = 0u; + enum SQLUINTEGER SQL_MAX_ROWS_DEFAULT = 0u; + enum SQLUINTEGER SQL_NOSCAN_OFF = 0u; + enum SQLUINTEGER SQL_NOSCAN_ON = 1u; + enum SQLUINTEGER SQL_MAX_LENGTH_DEFAULT = 0u; + enum SQLUINTEGER SQL_ASYNC_ENABLE_OFF = 0u; + enum SQLUINTEGER SQL_ASYNC_ENABLE_ON = 1u; + enum SQLUINTEGER SQL_BIND_BY_COLUMN = 0u; + enum SQLINTEGER SQL_CONCUR_READ_ONLY = 1; + enum SQLINTEGER SQL_CONCUR_LOCK = 2; + enum SQLINTEGER SQL_CONCUR_ROWVER = 3; + enum SQLINTEGER SQL_CONCUR_VALUES = 4; + enum SQLUINTEGER SQL_CURSOR_FORWARD_ONLY = 0u; + enum SQLUINTEGER SQL_CURSOR_KEYSET_DRIVEN = 1u; + enum SQLUINTEGER SQL_CURSOR_DYNAMIC = 2u; + enum SQLUINTEGER SQL_CURSOR_STATIC = 3u; + enum SQLUINTEGER SQL_ROWSET_SIZE_DEFAULT = 1u; + enum SQLUINTEGER SQL_KEYSET_SIZE_DEFAULT = 0u; + enum SQLUINTEGER SQL_SC_NON_UNIQUE = 0u; + enum SQLUINTEGER SQL_SC_TRY_UNIQUE = 1u; + enum SQLUINTEGER SQL_SC_UNIQUE = 2u; + enum SQLUINTEGER SQL_RD_OFF = 0u; + enum SQLUINTEGER SQL_RD_ON = 1u; + enum SQLUINTEGER SQL_UB_OFF = 0u; + enum SQLUINTEGER SQL_UB_ON = 1u; + enum SQLUINTEGER SQL_UB_VARIABLE = 2u; + enum SQLINTEGER SQL_DESC_ARRAY_SIZE = 20; + enum SQLINTEGER SQL_DESC_ARRAY_STATUS_PTR = 21; + enum SQLINTEGER SQL_DESC_BASE_COLUMN_NAME = 22; + enum SQLINTEGER SQL_DESC_BASE_TABLE_NAME = 23; + enum SQLINTEGER SQL_DESC_BIND_OFFSET_PTR = 24; + enum SQLINTEGER SQL_DESC_BIND_TYPE = 25; + enum SQLINTEGER SQL_DESC_DATETIME_INTERVAL_PRECISION = 26; + enum SQLINTEGER SQL_DESC_LITERAL_PREFIX = 27; + enum SQLINTEGER SQL_DESC_LITERAL_SUFFIX = 28; + enum SQLINTEGER SQL_DESC_LOCAL_TYPE_NAME = 29; + enum SQLINTEGER SQL_DESC_MAXIMUM_SCALE = 30; + enum SQLINTEGER SQL_DESC_MINIMUM_SCALE = 31; + enum SQLINTEGER SQL_DESC_NUM_PREC_RADIX = 32; + enum SQLINTEGER SQL_DESC_PARAMETER_TYPE = 33; + enum SQLINTEGER SQL_DESC_ROWS_PROCESSED_PTR = 34; + enum SQLINTEGER SQL_DESC_ROWVER = 35; + enum SQLINTEGER SQL_DESC_MIME_TYPE = 36; + auto SQL_DIAG_CURSOR_ROW_COUNT()() + { + return -1249; + } + auto SQL_DIAG_ROW_NUMBER()() + { + return -1248; + } + auto SQL_DIAG_COLUMN_NUMBER()() + { + return -1247; + } + enum SQLINTEGER SQL_DATE = 9; + enum SQLINTEGER SQL_INTERVAL = 10; + enum SQLINTEGER SQL_TIME = 10; + enum SQLINTEGER SQL_TIMESTAMP = 11; + auto SQL_LONGVARCHAR()() + { + return -1; + } + auto SQL_BINARY()() + { + return -2; + } + auto SQL_VARBINARY()() + { + return -3; + } + auto SQL_LONGVARBINARY()() + { + return -4; + } + auto SQL_BIGINT()() + { + return -5; + } + auto SQL_TINYINT()() + { + return -6; + } + auto SQL_BIT()() + { + return -7; + } + auto SQL_GUID()() + { + return -11; + } + enum SQLINTEGER SQL_CODE_YEAR = 1; + enum SQLINTEGER SQL_CODE_MONTH = 2; + enum SQLINTEGER SQL_CODE_DAY = 3; + enum SQLINTEGER SQL_CODE_HOUR = 4; + enum SQLINTEGER SQL_CODE_MINUTE = 5; + enum SQLINTEGER SQL_CODE_SECOND = 6; + enum SQLINTEGER SQL_CODE_YEAR_TO_MONTH = 7; + enum SQLINTEGER SQL_CODE_DAY_TO_HOUR = 8; + enum SQLINTEGER SQL_CODE_DAY_TO_MINUTE = 9; + enum SQLINTEGER SQL_CODE_DAY_TO_SECOND = 10; + enum SQLINTEGER SQL_CODE_HOUR_TO_MINUTE = 11; + enum SQLINTEGER SQL_CODE_HOUR_TO_SECOND = 12; + enum SQLINTEGER SQL_CODE_MINUTE_TO_SECOND = 13; + auto SQL_INTERVAL_YEAR()() + { + return 100 + SQL_CODE_YEAR; + } + auto SQL_INTERVAL_MONTH()() + { + return 100 + SQL_CODE_MONTH; + } + auto SQL_INTERVAL_DAY()() + { + return 100 + SQL_CODE_DAY; + } + auto SQL_INTERVAL_HOUR()() + { + return 100 + SQL_CODE_HOUR; + } + auto SQL_INTERVAL_MINUTE()() + { + return 100 + SQL_CODE_MINUTE; + } + auto SQL_INTERVAL_SECOND()() + { + return 100 + SQL_CODE_SECOND; + } + auto SQL_INTERVAL_YEAR_TO_MONTH()() + { + return 100 + SQL_CODE_YEAR_TO_MONTH; + } + auto SQL_INTERVAL_DAY_TO_HOUR()() + { + return 100 + SQL_CODE_DAY_TO_HOUR; + } + auto SQL_INTERVAL_DAY_TO_MINUTE()() + { + return 100 + SQL_CODE_DAY_TO_MINUTE; + } + auto SQL_INTERVAL_DAY_TO_SECOND()() + { + return 100 + SQL_CODE_DAY_TO_SECOND; + } + auto SQL_INTERVAL_HOUR_TO_MINUTE()() + { + return 100 + SQL_CODE_HOUR_TO_MINUTE; + } + auto SQL_INTERVAL_HOUR_TO_SECOND()() + { + return 100 + SQL_CODE_HOUR_TO_SECOND; + } + auto SQL_INTERVAL_MINUTE_TO_SECOND()() + { + return 100 + SQL_CODE_MINUTE_TO_SECOND; + } + enum SQLINTEGER SQL_C_DEFAULT = 99; + auto SQL_SIGNED_OFFSET()() + { + return -20; + } + auto SQL_UNSIGNED_OFFSET()() + { + return -22; + } + auto SQL_C_SBIGINT()() + { + return SQL_BIGINT + SQL_SIGNED_OFFSET; + } + auto SQL_C_UBIGINT()() + { + return SQL_BIGINT + SQL_UNSIGNED_OFFSET; + } + auto SQL_C_SLONG()() + { + return SQL_C_LONG + SQL_SIGNED_OFFSET; + } + auto SQL_C_SSHORT()() + { + return SQL_C_SHORT + SQL_SIGNED_OFFSET; + } + auto SQL_C_STINYINT()() + { + return SQL_TINYINT + SQL_SIGNED_OFFSET; + } + auto SQL_C_ULONG()() + { + return SQL_C_LONG + SQL_UNSIGNED_OFFSET; + } + auto SQL_C_USHORT()() + { + return SQL_C_SHORT + SQL_UNSIGNED_OFFSET; + } + auto SQL_C_UTINYINT()() + { + return SQL_TINYINT + SQL_UNSIGNED_OFFSET; + } + enum SQLINTEGER SQL_TYPE_NULL = 0; + enum SQLINTEGER SQL_DRIVER_C_TYPE_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_SQL_TYPE_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_DESC_FIELD_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_DIAG_FIELD_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_INFO_TYPE_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_CONN_ATTR_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_STMT_ATTR_BASE = 16384; + auto SQL_NO_ROW_NUMBER()() + { + return -1; + } + auto SQL_NO_COLUMN_NUMBER()() + { + return -1; + } + auto SQL_ROW_NUMBER_UNKNOWN()() + { + return -2; + } + auto SQL_COLUMN_NUMBER_UNKNOWN()() + { + return -2; + } + auto SQL_DEFAULT_PARAM()() + { + return -5; + } + auto SQL_IGNORE()() + { + return -6; + } + auto SQL_LEN_DATA_AT_EXEC_OFFSET()() + { + return -100; + } + auto SQL_LEN_DATA_AT_EXEC(__MP2)(__MP2 length) + { + return -length + SQL_LEN_DATA_AT_EXEC_OFFSET; + } + auto SQL_LEN_BINARY_ATTR_OFFSET()() + { + return -100; + } + auto SQL_LEN_BINARY_ATTR(__MP3)(__MP3 length) + { + return -length + SQL_LEN_BINARY_ATTR_OFFSET; + } + auto SQL_SETPARAM_VALUE_MAX()() + { + return -1; + } + auto SQL_TYPE_EXCEPTION()() + { + return -20; + } + enum SQLINTEGER SQL_COLUMN_COUNT = 0; + enum SQLINTEGER SQL_COLUMN_NAME = 1; + enum SQLINTEGER SQL_COLUMN_TYPE = 2; + enum SQLINTEGER SQL_COLUMN_LENGTH = 3; + enum SQLINTEGER SQL_COLUMN_PRECISION = 4; + enum SQLINTEGER SQL_COLUMN_SCALE = 5; + enum SQLINTEGER SQL_COLUMN_DISPLAY_SIZE = 6; + enum SQLINTEGER SQL_COLUMN_NULLABLE = 7; + enum SQLINTEGER SQL_COLUMN_UNSIGNED = 8; + enum SQLINTEGER SQL_COLUMN_MONEY = 9; + enum SQLINTEGER SQL_COLUMN_UPDATABLE = 10; + enum SQLINTEGER SQL_COLUMN_AUTO_INCREMENT = 11; + enum SQLINTEGER SQL_COLUMN_CASE_SENSITIVE = 12; + enum SQLINTEGER SQL_COLUMN_SEARCHABLE = 13; + enum SQLINTEGER SQL_COLUMN_TYPE_NAME = 14; + enum SQLINTEGER SQL_COLUMN_TABLE_NAME = 15; + enum SQLINTEGER SQL_COLUMN_OWNER_NAME = 16; + enum SQLINTEGER SQL_COLUMN_QUALIFIER_NAME = 17; + enum SQLINTEGER SQL_COLUMN_LABEL = 18; + enum SQLINTEGER SQL_ATTR_READONLY = 0; + enum SQLINTEGER SQL_ATTR_WRITE = 1; + enum SQLINTEGER SQL_ATTR_READWRITE_UNKNOWN = 2; + enum SQLINTEGER SQL_UNSEARCHABLE = 0; + enum SQLINTEGER SQL_LIKE_ONLY = 1; + enum SQLINTEGER SQL_ALL_EXCEPT_LIKE = 2; + enum SQLINTEGER SQL_SEARCHABLE = 3; + auto SQL_NO_TOTAL()() + { + return -4; + } + enum SQLINTEGER SQL_INFO_FIRST = 0; + enum SQLINTEGER SQL_ACTIVE_CONNECTIONS = 0; + enum SQLINTEGER SQL_ACTIVE_STATEMENTS = 1; + enum SQLINTEGER SQL_DRIVER_HDBC = 3; + enum SQLINTEGER SQL_DRIVER_HENV = 4; + enum SQLINTEGER SQL_DRIVER_HSTMT = 5; + enum SQLINTEGER SQL_DRIVER_NAME = 6; + enum SQLINTEGER SQL_DRIVER_VER = 7; + enum SQLINTEGER SQL_ODBC_API_CONFORMANCE = 9; + enum SQLINTEGER SQL_ODBC_VER = 10; + enum SQLINTEGER SQL_ROW_UPDATES = 11; + enum SQLINTEGER SQL_ODBC_SAG_CLI_CONFORMANCE = 12; + enum SQLINTEGER SQL_ODBC_SQL_CONFORMANCE = 15; + enum SQLINTEGER SQL_PROCEDURES = 21; + enum SQLINTEGER SQL_CONCAT_NULL_BEHAVIOR = 22; + enum SQLINTEGER SQL_CURSOR_ROLLBACK_BEHAVIOR = 24; + enum SQLINTEGER SQL_EXPRESSIONS_IN_ORDERBY = 27; + enum SQLINTEGER SQL_MAX_OWNER_NAME_LEN = 32; + enum SQLINTEGER SQL_MAX_PROCEDURE_NAME_LEN = 33; + enum SQLINTEGER SQL_MAX_QUALIFIER_NAME_LEN = 34; + enum SQLINTEGER SQL_MULT_RESULT_SETS = 36; + enum SQLINTEGER SQL_MULTIPLE_ACTIVE_TXN = 37; + enum SQLINTEGER SQL_OUTER_JOINS = 38; + enum SQLINTEGER SQL_OWNER_TERM = 39; + enum SQLINTEGER SQL_PROCEDURE_TERM = 40; + enum SQLINTEGER SQL_QUALIFIER_NAME_SEPARATOR = 41; + enum SQLINTEGER SQL_QUALIFIER_TERM = 42; + enum SQLINTEGER SQL_SCROLL_OPTIONS = 44; + enum SQLINTEGER SQL_TABLE_TERM = 45; + enum SQLINTEGER SQL_CONVERT_FUNCTIONS = 48; + enum SQLINTEGER SQL_NUMERIC_FUNCTIONS = 49; + enum SQLINTEGER SQL_STRING_FUNCTIONS = 50; + enum SQLINTEGER SQL_SYSTEM_FUNCTIONS = 51; + enum SQLINTEGER SQL_TIMEDATE_FUNCTIONS = 52; + enum SQLINTEGER SQL_CONVERT_BIGINT = 53; + enum SQLINTEGER SQL_CONVERT_BINARY = 54; + enum SQLINTEGER SQL_CONVERT_BIT = 55; + enum SQLINTEGER SQL_CONVERT_CHAR = 56; + enum SQLINTEGER SQL_CONVERT_DATE = 57; + enum SQLINTEGER SQL_CONVERT_DECIMAL = 58; + enum SQLINTEGER SQL_CONVERT_DOUBLE = 59; + enum SQLINTEGER SQL_CONVERT_FLOAT = 60; + enum SQLINTEGER SQL_CONVERT_INTEGER = 61; + enum SQLINTEGER SQL_CONVERT_LONGVARCHAR = 62; + enum SQLINTEGER SQL_CONVERT_NUMERIC = 63; + enum SQLINTEGER SQL_CONVERT_REAL = 64; + enum SQLINTEGER SQL_CONVERT_SMALLINT = 65; + enum SQLINTEGER SQL_CONVERT_TIME = 66; + enum SQLINTEGER SQL_CONVERT_TIMESTAMP = 67; + enum SQLINTEGER SQL_CONVERT_TINYINT = 68; + enum SQLINTEGER SQL_CONVERT_VARBINARY = 69; + enum SQLINTEGER SQL_CONVERT_VARCHAR = 70; + enum SQLINTEGER SQL_CONVERT_LONGVARBINARY = 71; + enum SQLINTEGER SQL_ODBC_SQL_OPT_IEF = 73; + enum SQLINTEGER SQL_CORRELATION_NAME = 74; + enum SQLINTEGER SQL_NON_NULLABLE_COLUMNS = 75; + enum SQLINTEGER SQL_DRIVER_HLIB = 76; + enum SQLINTEGER SQL_DRIVER_ODBC_VER = 77; + enum SQLINTEGER SQL_LOCK_TYPES = 78; + enum SQLINTEGER SQL_POS_OPERATIONS = 79; + enum SQLINTEGER SQL_POSITIONED_STATEMENTS = 80; + enum SQLINTEGER SQL_BOOKMARK_PERSISTENCE = 82; + enum SQLINTEGER SQL_STATIC_SENSITIVITY = 83; + enum SQLINTEGER SQL_FILE_USAGE = 84; + enum SQLINTEGER SQL_COLUMN_ALIAS = 87; + enum SQLINTEGER SQL_GROUP_BY = 88; + enum SQLINTEGER SQL_KEYWORDS = 89; + enum SQLINTEGER SQL_OWNER_USAGE = 91; + enum SQLINTEGER SQL_QUALIFIER_USAGE = 92; + enum SQLINTEGER SQL_QUOTED_IDENTIFIER_CASE = 93; + enum SQLINTEGER SQL_SUBQUERIES = 95; + enum SQLINTEGER SQL_UNION = 96; + enum SQLINTEGER SQL_MAX_ROW_SIZE_INCLUDES_LONG = 103; + enum SQLINTEGER SQL_MAX_CHAR_LITERAL_LEN = 108; + enum SQLINTEGER SQL_TIMEDATE_ADD_INTERVALS = 109; + enum SQLINTEGER SQL_TIMEDATE_DIFF_INTERVALS = 110; + enum SQLINTEGER SQL_NEED_LONG_DATA_LEN = 111; + enum SQLINTEGER SQL_MAX_BINARY_LITERAL_LEN = 112; + enum SQLINTEGER SQL_LIKE_ESCAPE_CLAUSE = 113; + enum SQLINTEGER SQL_QUALIFIER_LOCATION = 114; + enum SQLINTEGER SQL_ACTIVE_ENVIRONMENTS = 116; + enum SQLINTEGER SQL_ALTER_DOMAIN = 117; + enum SQLINTEGER SQL_SQL_CONFORMANCE = 118; + enum SQLINTEGER SQL_DATETIME_LITERALS = 119; + enum SQLINTEGER SQL_ASYNC_MODE = 10021; + enum SQLINTEGER SQL_BATCH_ROW_COUNT = 120; + enum SQLINTEGER SQL_BATCH_SUPPORT = 121; + enum SQLINTEGER SQL_CONVERT_WCHAR = 122; + enum SQLINTEGER SQL_CONVERT_INTERVAL_DAY_TIME = 123; + enum SQLINTEGER SQL_CONVERT_INTERVAL_YEAR_MONTH = 124; + enum SQLINTEGER SQL_CONVERT_WLONGVARCHAR = 125; + enum SQLINTEGER SQL_CONVERT_WVARCHAR = 126; + enum SQLINTEGER SQL_CREATE_ASSERTION = 127; + enum SQLINTEGER SQL_CREATE_CHARACTER_SET = 128; + enum SQLINTEGER SQL_CREATE_COLLATION = 129; + enum SQLINTEGER SQL_CREATE_DOMAIN = 130; + enum SQLINTEGER SQL_CREATE_SCHEMA = 131; + enum SQLINTEGER SQL_CREATE_TABLE = 132; + enum SQLINTEGER SQL_CREATE_TRANSLATION = 133; + enum SQLINTEGER SQL_CREATE_VIEW = 134; + enum SQLINTEGER SQL_DRIVER_HDESC = 135; + enum SQLINTEGER SQL_DROP_ASSERTION = 136; + enum SQLINTEGER SQL_DROP_CHARACTER_SET = 137; + enum SQLINTEGER SQL_DROP_COLLATION = 138; + enum SQLINTEGER SQL_DROP_DOMAIN = 139; + enum SQLINTEGER SQL_DROP_SCHEMA = 140; + enum SQLINTEGER SQL_DROP_TABLE = 141; + enum SQLINTEGER SQL_DROP_TRANSLATION = 142; + enum SQLINTEGER SQL_DROP_VIEW = 143; + enum SQLINTEGER SQL_DYNAMIC_CURSOR_ATTRIBUTES1 = 144; + enum SQLINTEGER SQL_DYNAMIC_CURSOR_ATTRIBUTES2 = 145; + enum SQLINTEGER SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 = 146; + enum SQLINTEGER SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 = 147; + enum SQLINTEGER SQL_INDEX_KEYWORDS = 148; + enum SQLINTEGER SQL_INFO_SCHEMA_VIEWS = 149; + enum SQLINTEGER SQL_KEYSET_CURSOR_ATTRIBUTES1 = 150; + enum SQLINTEGER SQL_KEYSET_CURSOR_ATTRIBUTES2 = 151; + enum SQLINTEGER SQL_MAX_ASYNC_CONCURRENT_STATEMENTS = 10022; + enum SQLINTEGER SQL_ODBC_INTERFACE_CONFORMANCE = 152; + enum SQLINTEGER SQL_PARAM_ARRAY_ROW_COUNTS = 153; + enum SQLINTEGER SQL_PARAM_ARRAY_SELECTS = 154; + enum SQLINTEGER SQL_SQL92_DATETIME_FUNCTIONS = 155; + enum SQLINTEGER SQL_SQL92_FOREIGN_KEY_DELETE_RULE = 156; + enum SQLINTEGER SQL_SQL92_FOREIGN_KEY_UPDATE_RULE = 157; + enum SQLINTEGER SQL_SQL92_GRANT = 158; + enum SQLINTEGER SQL_SQL92_NUMERIC_VALUE_FUNCTIONS = 159; + enum SQLINTEGER SQL_SQL92_PREDICATES = 160; + enum SQLINTEGER SQL_SQL92_RELATIONAL_JOIN_OPERATORS = 161; + enum SQLINTEGER SQL_SQL92_REVOKE = 162; + enum SQLINTEGER SQL_SQL92_ROW_VALUE_CONSTRUCTOR = 163; + enum SQLINTEGER SQL_SQL92_STRING_FUNCTIONS = 164; + enum SQLINTEGER SQL_SQL92_VALUE_EXPRESSIONS = 165; + enum SQLINTEGER SQL_STANDARD_CLI_CONFORMANCE = 166; + enum SQLINTEGER SQL_STATIC_CURSOR_ATTRIBUTES1 = 167; + enum SQLINTEGER SQL_STATIC_CURSOR_ATTRIBUTES2 = 168; + enum SQLINTEGER SQL_AGGREGATE_FUNCTIONS = 169; + enum SQLINTEGER SQL_DDL_INDEX = 170; + enum SQLINTEGER SQL_DM_VER = 171; + enum SQLINTEGER SQL_INSERT_STATEMENT = 172; + enum SQLINTEGER SQL_CONVERT_GUID = 173; + enum SQLINTEGER SQL_SCHEMA_INFERENCE = 174; + enum SQLINTEGER SQL_BINARY_FUNCTIONS = 175; + enum SQLINTEGER SQL_ISO_STRING_FUNCTIONS = 176; + enum SQLINTEGER SQL_ISO_BINARY_FUNCTIONS = 177; + enum SQLINTEGER SQL_LIMIT_ESCAPE_CLAUSE = 178; + enum SQLINTEGER SQL_NATIVE_ESCAPE_CLAUSE = 179; + enum SQLINTEGER SQL_RETURN_ESCAPE_CLAUSE = 180; + enum SQLINTEGER SQL_FORMAT_ESCAPE_CLAUSE = 181; + enum SQLINTEGER SQL_ASYNC_DBC_FUNCTIONS = 10023; + enum SQLINTEGER SQL_DRIVER_AWARE_POOLING_SUPPORTED = 10024; + enum SQLINTEGER SQL_ASYNC_NOTIFICATION = 10025; + enum SQLINTEGER SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = 0; + enum SQLINTEGER SQL_ASYNC_NOTIFICATION_CAPABLE = 1; + enum SQLINTEGER SQL_DTC_TRANSITION_COST = 1750; + enum SQLINTEGER SQL_AT_ADD_COLUMN_SINGLE = 32; + enum SQLINTEGER SQL_AT_ADD_COLUMN_DEFAULT = 64; + enum SQLINTEGER SQL_AT_ADD_COLUMN_COLLATION = 128; + enum SQLINTEGER SQL_AT_SET_COLUMN_DEFAULT = 256; + enum SQLINTEGER SQL_AT_DROP_COLUMN_DEFAULT = 512; + enum SQLINTEGER SQL_AT_DROP_COLUMN_CASCADE = 1024; + enum SQLINTEGER SQL_AT_DROP_COLUMN_RESTRICT = 2048; + enum SQLINTEGER SQL_AT_ADD_TABLE_CONSTRAINT = 4096; + enum SQLINTEGER SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE = 8192; + enum SQLINTEGER SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = 16384; + enum SQLINTEGER SQL_AT_CONSTRAINT_NAME_DEFINITION = 32768; + enum SQLINTEGER SQL_AT_CONSTRAINT_INITIALLY_DEFERRED = 65536; + enum SQLINTEGER SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE = 131072; + enum SQLINTEGER SQL_AT_CONSTRAINT_DEFERRABLE = 262144; + enum SQLINTEGER SQL_AT_CONSTRAINT_NON_DEFERRABLE = 524288; + enum SQLINTEGER SQL_CVT_CHAR = 1; + enum SQLINTEGER SQL_CVT_NUMERIC = 2; + enum SQLINTEGER SQL_CVT_DECIMAL = 4; + enum SQLINTEGER SQL_CVT_INTEGER = 8; + enum SQLINTEGER SQL_CVT_SMALLINT = 16; + enum SQLINTEGER SQL_CVT_FLOAT = 32; + enum SQLINTEGER SQL_CVT_REAL = 64; + enum SQLINTEGER SQL_CVT_DOUBLE = 128; + enum SQLINTEGER SQL_CVT_VARCHAR = 256; + enum SQLINTEGER SQL_CVT_LONGVARCHAR = 512; + enum SQLINTEGER SQL_CVT_BINARY = 1024; + enum SQLINTEGER SQL_CVT_VARBINARY = 2048; + enum SQLINTEGER SQL_CVT_BIT = 4096; + enum SQLINTEGER SQL_CVT_TINYINT = 8192; + enum SQLINTEGER SQL_CVT_BIGINT = 16384; + enum SQLINTEGER SQL_CVT_DATE = 32768; + enum SQLINTEGER SQL_CVT_TIME = 65536; + enum SQLINTEGER SQL_CVT_TIMESTAMP = 131072; + enum SQLINTEGER SQL_CVT_LONGVARBINARY = 262144; + enum SQLINTEGER SQL_CVT_INTERVAL_YEAR_MONTH = 524288; + enum SQLINTEGER SQL_CVT_INTERVAL_DAY_TIME = 1048576; + enum SQLINTEGER SQL_CVT_WCHAR = 2097152; + enum SQLINTEGER SQL_CVT_WLONGVARCHAR = 4194304; + enum SQLINTEGER SQL_CVT_WVARCHAR = 8388608; + enum SQLINTEGER SQL_CVT_GUID = 16777216; + enum SQLINTEGER SQL_FN_CVT_CONVERT = 1; + enum SQLINTEGER SQL_FN_CVT_CAST = 2; + enum SQLINTEGER SQL_FN_STR_CONCAT = 1; + enum SQLINTEGER SQL_FN_STR_INSERT = 2; + enum SQLINTEGER SQL_FN_STR_LEFT = 4; + enum SQLINTEGER SQL_FN_STR_LTRIM = 8; + enum SQLINTEGER SQL_FN_STR_LENGTH = 16; + enum SQLINTEGER SQL_FN_STR_LOCATE = 32; + enum SQLINTEGER SQL_FN_STR_LCASE = 64; + enum SQLINTEGER SQL_FN_STR_REPEAT = 128; + enum SQLINTEGER SQL_FN_STR_REPLACE = 256; + enum SQLINTEGER SQL_FN_STR_RIGHT = 512; + enum SQLINTEGER SQL_FN_STR_RTRIM = 1024; + enum SQLINTEGER SQL_FN_STR_SUBSTRING = 2048; + enum SQLINTEGER SQL_FN_STR_UCASE = 4096; + enum SQLINTEGER SQL_FN_STR_ASCII = 8192; + enum SQLINTEGER SQL_FN_STR_CHAR = 16384; + enum SQLINTEGER SQL_FN_STR_DIFFERENCE = 32768; + enum SQLINTEGER SQL_FN_STR_LOCATE_2 = 65536; + enum SQLINTEGER SQL_FN_STR_SOUNDEX = 131072; + enum SQLINTEGER SQL_FN_STR_SPACE = 262144; + enum SQLINTEGER SQL_FN_STR_BIT_LENGTH = 524288; + enum SQLINTEGER SQL_FN_STR_CHAR_LENGTH = 1048576; + enum SQLINTEGER SQL_FN_STR_CHARACTER_LENGTH = 2097152; + enum SQLINTEGER SQL_FN_STR_OCTET_LENGTH = 4194304; + enum SQLINTEGER SQL_FN_STR_POSITION = 8388608; + enum SQLINTEGER SQL_SSF_CONVERT = 1; + enum SQLINTEGER SQL_SSF_LOWER = 2; + enum SQLINTEGER SQL_SSF_UPPER = 4; + enum SQLINTEGER SQL_SSF_SUBSTRING = 8; + enum SQLINTEGER SQL_SSF_TRANSLATE = 16; + enum SQLINTEGER SQL_SSF_TRIM_BOTH = 32; + enum SQLINTEGER SQL_SSF_TRIM_LEADING = 64; + enum SQLINTEGER SQL_SSF_TRIM_TRAILING = 128; + enum SQLINTEGER SQL_SSF_OVERLAY = 256; + enum SQLINTEGER SQL_SSF_LENGTH = 512; + enum SQLINTEGER SQL_SSF_POSITION = 1024; + enum SQLINTEGER SQL_SSF_CONCAT = 2048; + enum SQLINTEGER SQL_FN_NUM_ABS = 1; + enum SQLINTEGER SQL_FN_NUM_ACOS = 2; + enum SQLINTEGER SQL_FN_NUM_ASIN = 4; + enum SQLINTEGER SQL_FN_NUM_ATAN = 8; + enum SQLINTEGER SQL_FN_NUM_ATAN2 = 16; + enum SQLINTEGER SQL_FN_NUM_CEILING = 32; + enum SQLINTEGER SQL_FN_NUM_COS = 64; + enum SQLINTEGER SQL_FN_NUM_COT = 128; + enum SQLINTEGER SQL_FN_NUM_EXP = 256; + enum SQLINTEGER SQL_FN_NUM_FLOOR = 512; + enum SQLINTEGER SQL_FN_NUM_LOG = 1024; + enum SQLINTEGER SQL_FN_NUM_MOD = 2048; + enum SQLINTEGER SQL_FN_NUM_SIGN = 4096; + enum SQLINTEGER SQL_FN_NUM_SIN = 8192; + enum SQLINTEGER SQL_FN_NUM_SQRT = 16384; + enum SQLINTEGER SQL_FN_NUM_TAN = 32768; + enum SQLINTEGER SQL_FN_NUM_PI = 65536; + enum SQLINTEGER SQL_FN_NUM_RAND = 131072; + enum SQLINTEGER SQL_FN_NUM_DEGREES = 262144; + enum SQLINTEGER SQL_FN_NUM_LOG10 = 524288; + enum SQLINTEGER SQL_FN_NUM_POWER = 1048576; + enum SQLINTEGER SQL_FN_NUM_RADIANS = 2097152; + enum SQLINTEGER SQL_FN_NUM_ROUND = 4194304; + enum SQLINTEGER SQL_FN_NUM_TRUNCATE = 8388608; + enum SQLINTEGER SQL_SNVF_BIT_LENGTH = 1; + enum SQLINTEGER SQL_SNVF_CHAR_LENGTH = 2; + enum SQLINTEGER SQL_SNVF_CHARACTER_LENGTH = 4; + enum SQLINTEGER SQL_SNVF_EXTRACT = 8; + enum SQLINTEGER SQL_SNVF_OCTET_LENGTH = 16; + enum SQLINTEGER SQL_SNVF_POSITION = 32; + enum SQLINTEGER SQL_FN_TD_NOW = 1; + enum SQLINTEGER SQL_FN_TD_CURDATE = 2; + enum SQLINTEGER SQL_FN_TD_DAYOFMONTH = 4; + enum SQLINTEGER SQL_FN_TD_DAYOFWEEK = 8; + enum SQLINTEGER SQL_FN_TD_DAYOFYEAR = 16; + enum SQLINTEGER SQL_FN_TD_MONTH = 32; + enum SQLINTEGER SQL_FN_TD_QUARTER = 64; + enum SQLINTEGER SQL_FN_TD_WEEK = 128; + enum SQLINTEGER SQL_FN_TD_YEAR = 256; + enum SQLINTEGER SQL_FN_TD_CURTIME = 512; + enum SQLINTEGER SQL_FN_TD_HOUR = 1024; + enum SQLINTEGER SQL_FN_TD_MINUTE = 2048; + enum SQLINTEGER SQL_FN_TD_SECOND = 4096; + enum SQLINTEGER SQL_FN_TD_TIMESTAMPADD = 8192; + enum SQLINTEGER SQL_FN_TD_TIMESTAMPDIFF = 16384; + enum SQLINTEGER SQL_FN_TD_DAYNAME = 32768; + enum SQLINTEGER SQL_FN_TD_MONTHNAME = 65536; + enum SQLINTEGER SQL_FN_TD_CURRENT_DATE = 131072; + enum SQLINTEGER SQL_FN_TD_CURRENT_TIME = 262144; + enum SQLINTEGER SQL_FN_TD_CURRENT_TIMESTAMP = 524288; + enum SQLINTEGER SQL_FN_TD_EXTRACT = 1048576; + enum SQLINTEGER SQL_SDF_CURRENT_DATE = 1; + enum SQLINTEGER SQL_SDF_CURRENT_TIME = 2; + enum SQLINTEGER SQL_SDF_CURRENT_TIMESTAMP = 4; + enum SQLINTEGER SQL_FN_SYS_USERNAME = 1; + enum SQLINTEGER SQL_FN_SYS_DBNAME = 2; + enum SQLINTEGER SQL_FN_SYS_IFNULL = 4; + enum SQLINTEGER SQL_FN_TSI_FRAC_SECOND = 1; + enum SQLINTEGER SQL_FN_TSI_SECOND = 2; + enum SQLINTEGER SQL_FN_TSI_MINUTE = 4; + enum SQLINTEGER SQL_FN_TSI_HOUR = 8; + enum SQLINTEGER SQL_FN_TSI_DAY = 16; + enum SQLINTEGER SQL_FN_TSI_WEEK = 32; + enum SQLINTEGER SQL_FN_TSI_MONTH = 64; + enum SQLINTEGER SQL_FN_TSI_QUARTER = 128; + enum SQLINTEGER SQL_FN_TSI_YEAR = 256; + enum SQLINTEGER SQL_CA1_NEXT = 1; + enum SQLINTEGER SQL_CA1_ABSOLUTE = 2; + enum SQLINTEGER SQL_CA1_RELATIVE = 4; + enum SQLINTEGER SQL_CA1_BOOKMARK = 8; + enum SQLINTEGER SQL_CA1_LOCK_NO_CHANGE = 64; + enum SQLINTEGER SQL_CA1_LOCK_EXCLUSIVE = 128; + enum SQLINTEGER SQL_CA1_LOCK_UNLOCK = 256; + enum SQLINTEGER SQL_CA1_POS_POSITION = 512; + enum SQLINTEGER SQL_CA1_POS_UPDATE = 1024; + enum SQLINTEGER SQL_CA1_POS_DELETE = 2048; + enum SQLINTEGER SQL_CA1_POS_REFRESH = 4096; + enum SQLINTEGER SQL_CA1_POSITIONED_UPDATE = 8192; + enum SQLINTEGER SQL_CA1_POSITIONED_DELETE = 16384; + enum SQLINTEGER SQL_CA1_SELECT_FOR_UPDATE = 32768; + enum SQLINTEGER SQL_CA1_BULK_ADD = 65536; + enum SQLINTEGER SQL_CA1_BULK_UPDATE_BY_BOOKMARK = 131072; + enum SQLINTEGER SQL_CA1_BULK_DELETE_BY_BOOKMARK = 262144; + enum SQLINTEGER SQL_CA1_BULK_FETCH_BY_BOOKMARK = 524288; + enum SQLINTEGER SQL_CA2_READ_ONLY_CONCURRENCY = 1; + enum SQLINTEGER SQL_CA2_LOCK_CONCURRENCY = 2; + enum SQLINTEGER SQL_CA2_OPT_ROWVER_CONCURRENCY = 4; + enum SQLINTEGER SQL_CA2_OPT_VALUES_CONCURRENCY = 8; + enum SQLINTEGER SQL_CA2_SENSITIVITY_ADDITIONS = 16; + enum SQLINTEGER SQL_CA2_SENSITIVITY_DELETIONS = 32; + enum SQLINTEGER SQL_CA2_SENSITIVITY_UPDATES = 64; + enum SQLINTEGER SQL_CA2_MAX_ROWS_SELECT = 128; + enum SQLINTEGER SQL_CA2_MAX_ROWS_INSERT = 256; + enum SQLINTEGER SQL_CA2_MAX_ROWS_DELETE = 512; + enum SQLINTEGER SQL_CA2_MAX_ROWS_UPDATE = 1024; + enum SQLINTEGER SQL_CA2_MAX_ROWS_CATALOG = 2048; + enum SQLINTEGER SQL_CA2_CRC_EXACT = 4096; + enum SQLINTEGER SQL_CA2_CRC_APPROXIMATE = 8192; + enum SQLINTEGER SQL_CA2_SIMULATE_NON_UNIQUE = 16384; + enum SQLINTEGER SQL_CA2_SIMULATE_TRY_UNIQUE = 32768; + enum SQLINTEGER SQL_CA2_SIMULATE_UNIQUE = 65536; + enum SQLINTEGER SQL_OAC_NONE = 0; + enum SQLINTEGER SQL_OAC_LEVEL1 = 1; + enum SQLINTEGER SQL_OAC_LEVEL2 = 2; + enum SQLINTEGER SQL_OSCC_NOT_COMPLIANT = 0; + enum SQLINTEGER SQL_OSCC_COMPLIANT = 1; + enum SQLINTEGER SQL_OSC_MINIMUM = 0; + enum SQLINTEGER SQL_OSC_CORE = 1; + enum SQLINTEGER SQL_OSC_EXTENDED = 2; + enum SQLINTEGER SQL_CB_NULL = 0; + enum SQLINTEGER SQL_CB_NON_NULL = 1; + enum SQLINTEGER SQL_SO_FORWARD_ONLY = 1; + enum SQLINTEGER SQL_SO_KEYSET_DRIVEN = 2; + enum SQLINTEGER SQL_SO_DYNAMIC = 4; + enum SQLINTEGER SQL_SO_MIXED = 8; + enum SQLINTEGER SQL_SO_STATIC = 16; + enum SQLINTEGER SQL_FD_FETCH_BOOKMARK = 128; + enum SQLINTEGER SQL_CN_NONE = 0; + enum SQLINTEGER SQL_CN_DIFFERENT = 1; + enum SQLINTEGER SQL_CN_ANY = 2; + enum SQLINTEGER SQL_NNC_NULL = 0; + enum SQLINTEGER SQL_NNC_NON_NULL = 1; + enum SQLINTEGER SQL_NC_START = 2; + enum SQLINTEGER SQL_NC_END = 4; + enum SQLINTEGER SQL_FILE_NOT_SUPPORTED = 0; + enum SQLINTEGER SQL_FILE_TABLE = 1; + enum SQLINTEGER SQL_FILE_QUALIFIER = 2; + enum SQLINTEGER SQL_GD_BLOCK = 4; + enum SQLINTEGER SQL_GD_BOUND = 8; + enum SQLINTEGER SQL_GD_OUTPUT_PARAMS = 16; + enum SQLINTEGER SQL_GD_CONCURRENT = 32; + enum SQLINTEGER SQL_PS_POSITIONED_DELETE = 1; + enum SQLINTEGER SQL_PS_POSITIONED_UPDATE = 2; + enum SQLINTEGER SQL_PS_SELECT_FOR_UPDATE = 4; + enum SQLINTEGER SQL_GB_NOT_SUPPORTED = 0; + enum SQLINTEGER SQL_GB_GROUP_BY_EQUALS_SELECT = 1; + enum SQLINTEGER SQL_GB_GROUP_BY_CONTAINS_SELECT = 2; + enum SQLINTEGER SQL_GB_NO_RELATION = 3; + enum SQLINTEGER SQL_GB_COLLATE = 4; + enum SQLINTEGER SQL_OU_DML_STATEMENTS = 1; + enum SQLINTEGER SQL_OU_PROCEDURE_INVOCATION = 2; + enum SQLINTEGER SQL_OU_TABLE_DEFINITION = 4; + enum SQLINTEGER SQL_OU_INDEX_DEFINITION = 8; + enum SQLINTEGER SQL_OU_PRIVILEGE_DEFINITION = 16; + enum SQLINTEGER SQL_QU_DML_STATEMENTS = 1; + enum SQLINTEGER SQL_QU_PROCEDURE_INVOCATION = 2; + enum SQLINTEGER SQL_QU_TABLE_DEFINITION = 4; + enum SQLINTEGER SQL_QU_INDEX_DEFINITION = 8; + enum SQLINTEGER SQL_QU_PRIVILEGE_DEFINITION = 16; + enum SQLINTEGER SQL_SQ_COMPARISON = 1; + enum SQLINTEGER SQL_SQ_EXISTS = 2; + enum SQLINTEGER SQL_SQ_IN = 4; + enum SQLINTEGER SQL_SQ_QUANTIFIED = 8; + enum SQLINTEGER SQL_SQ_CORRELATED_SUBQUERIES = 16; + enum SQLINTEGER SQL_U_UNION = 1; + enum SQLINTEGER SQL_U_UNION_ALL = 2; + enum SQLINTEGER SQL_BP_CLOSE = 1; + enum SQLINTEGER SQL_BP_DELETE = 2; + enum SQLINTEGER SQL_BP_DROP = 4; + enum SQLINTEGER SQL_BP_TRANSACTION = 8; + enum SQLINTEGER SQL_BP_UPDATE = 16; + enum SQLINTEGER SQL_BP_OTHER_HSTMT = 32; + enum SQLINTEGER SQL_BP_SCROLL = 64; + enum SQLINTEGER SQL_SS_ADDITIONS = 1; + enum SQLINTEGER SQL_SS_DELETIONS = 2; + enum SQLINTEGER SQL_SS_UPDATES = 4; + enum SQLINTEGER SQL_CV_CREATE_VIEW = 1; + enum SQLINTEGER SQL_CV_CHECK_OPTION = 2; + enum SQLINTEGER SQL_CV_CASCADED = 4; + enum SQLINTEGER SQL_CV_LOCAL = 8; + enum SQLINTEGER SQL_LCK_NO_CHANGE = 1; + enum SQLINTEGER SQL_LCK_EXCLUSIVE = 2; + enum SQLINTEGER SQL_LCK_UNLOCK = 4; + enum SQLINTEGER SQL_POS_POSITION = 1; + enum SQLINTEGER SQL_POS_REFRESH = 2; + enum SQLINTEGER SQL_POS_UPDATE = 4; + enum SQLINTEGER SQL_POS_DELETE = 8; + enum SQLINTEGER SQL_POS_ADD = 16; + enum SQLINTEGER SQL_QL_START = 1; + enum SQLINTEGER SQL_QL_END = 2; + enum SQLINTEGER SQL_AF_AVG = 1; + enum SQLINTEGER SQL_AF_COUNT = 2; + enum SQLINTEGER SQL_AF_MAX = 4; + enum SQLINTEGER SQL_AF_MIN = 8; + enum SQLINTEGER SQL_AF_SUM = 16; + enum SQLINTEGER SQL_AF_DISTINCT = 32; + enum SQLINTEGER SQL_AF_ALL = 64; + enum SQLINTEGER SQL_AF_EVERY = 128; + enum SQLINTEGER SQL_AF_ANY = 256; + enum SQLINTEGER SQL_AF_STDEV_OP = 512; + enum SQLINTEGER SQL_AF_STDEV_SAMP = 1024; + enum SQLINTEGER SQL_AF_VAR_SAMP = 2048; + enum SQLINTEGER SQL_AF_VAR_POP = 4096; + enum SQLINTEGER SQL_AF_ARRAY_AGG = 8192; + enum SQLINTEGER SQL_AF_COLLECT = 16384; + enum SQLINTEGER SQL_AF_FUSION = 32768; + enum SQLINTEGER SQL_AF_INTERSECTION = 65536; + enum SQLINTEGER SQL_SC_SQL92_ENTRY = 1; + enum SQLINTEGER SQL_SC_FIPS127_2_TRANSITIONAL = 2; + enum SQLINTEGER SQL_SC_SQL92_INTERMEDIATE = 4; + enum SQLINTEGER SQL_SC_SQL92_FULL = 8; + enum SQLINTEGER SQL_DL_SQL92_DATE = 1; + enum SQLINTEGER SQL_DL_SQL92_TIME = 2; + enum SQLINTEGER SQL_DL_SQL92_TIMESTAMP = 4; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_YEAR = 8; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_MONTH = 16; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY = 32; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_HOUR = 64; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_MINUTE = 128; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_SECOND = 256; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH = 512; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR = 1024; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE = 2048; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND = 4096; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE = 8192; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND = 16384; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND = 32768; + enum SQLINTEGER SQL_BRC_PROCEDURES = 1; + enum SQLINTEGER SQL_BRC_EXPLICIT = 2; + enum SQLINTEGER SQL_BRC_ROLLED_UP = 4; + enum SQLINTEGER SQL_BS_SELECT_EXPLICIT = 1; + enum SQLINTEGER SQL_BS_ROW_COUNT_EXPLICIT = 2; + enum SQLINTEGER SQL_BS_SELECT_PROC = 4; + enum SQLINTEGER SQL_BS_ROW_COUNT_PROC = 8; + enum SQLINTEGER SQL_PARC_BATCH = 1; + enum SQLINTEGER SQL_PARC_NO_BATCH = 2; + enum SQLINTEGER SQL_PAS_BATCH = 1; + enum SQLINTEGER SQL_PAS_NO_BATCH = 2; + enum SQLINTEGER SQL_PAS_NO_SELECT = 3; + enum SQLINTEGER SQL_IK_NONE = 0; + enum SQLINTEGER SQL_IK_ASC = 1; + enum SQLINTEGER SQL_IK_DESC = 2; + auto SQL_IK_ALL()() + { + return SQL_IK_ASC | SQL_IK_DESC; + } + enum SQLINTEGER SQL_ISV_ASSERTIONS = 1; + enum SQLINTEGER SQL_ISV_CHARACTER_SETS = 2; + enum SQLINTEGER SQL_ISV_CHECK_CONSTRAINTS = 4; + enum SQLINTEGER SQL_ISV_COLLATIONS = 8; + enum SQLINTEGER SQL_ISV_COLUMN_DOMAIN_USAGE = 16; + enum SQLINTEGER SQL_ISV_COLUMN_PRIVILEGES = 32; + enum SQLINTEGER SQL_ISV_COLUMNS = 64; + enum SQLINTEGER SQL_ISV_CONSTRAINT_COLUMN_USAGE = 128; + enum SQLINTEGER SQL_ISV_CONSTRAINT_TABLE_USAGE = 256; + enum SQLINTEGER SQL_ISV_DOMAIN_CONSTRAINTS = 512; + enum SQLINTEGER SQL_ISV_DOMAINS = 1024; + enum SQLINTEGER SQL_ISV_KEY_COLUMN_USAGE = 2048; + enum SQLINTEGER SQL_ISV_REFERENTIAL_CONSTRAINTS = 4096; + enum SQLINTEGER SQL_ISV_SCHEMATA = 8192; + enum SQLINTEGER SQL_ISV_SQL_LANGUAGES = 16384; + enum SQLINTEGER SQL_ISV_TABLE_CONSTRAINTS = 32768; + enum SQLINTEGER SQL_ISV_TABLE_PRIVILEGES = 65536; + enum SQLINTEGER SQL_ISV_TABLES = 131072; + enum SQLINTEGER SQL_ISV_TRANSLATIONS = 262144; + enum SQLINTEGER SQL_ISV_USAGE_PRIVILEGES = 524288; + enum SQLINTEGER SQL_ISV_VIEW_COLUMN_USAGE = 1048576; + enum SQLINTEGER SQL_ISV_VIEW_TABLE_USAGE = 2097152; + enum SQLINTEGER SQL_ISV_VIEWS = 4194304; + enum SQLINTEGER SQL_AD_CONSTRAINT_NAME_DEFINITION = 1; + enum SQLINTEGER SQL_AD_ADD_DOMAIN_CONSTRAINT = 2; + enum SQLINTEGER SQL_AD_DROP_DOMAIN_CONSTRAINT = 4; + enum SQLINTEGER SQL_AD_ADD_DOMAIN_DEFAULT = 8; + enum SQLINTEGER SQL_AD_DROP_DOMAIN_DEFAULT = 16; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED = 32; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE = 64; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_DEFERRABLE = 128; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE = 256; + enum SQLINTEGER SQL_CS_CREATE_SCHEMA = 1; + enum SQLINTEGER SQL_CS_AUTHORIZATION = 2; + enum SQLINTEGER SQL_CS_DEFAULT_CHARACTER_SET = 4; + enum SQLINTEGER SQL_CTR_CREATE_TRANSLATION = 1; + enum SQLINTEGER SQL_CA_CREATE_ASSERTION = 1; + enum SQLINTEGER SQL_CA_CONSTRAINT_INITIALLY_DEFERRED = 16; + enum SQLINTEGER SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE = 32; + enum SQLINTEGER SQL_CA_CONSTRAINT_DEFERRABLE = 64; + enum SQLINTEGER SQL_CA_CONSTRAINT_NON_DEFERRABLE = 128; + enum SQLINTEGER SQL_CCS_CREATE_CHARACTER_SET = 1; + enum SQLINTEGER SQL_CCS_COLLATE_CLAUSE = 2; + enum SQLINTEGER SQL_CCS_LIMITED_COLLATION = 4; + enum SQLINTEGER SQL_CCOL_CREATE_COLLATION = 1; + enum SQLINTEGER SQL_CDO_CREATE_DOMAIN = 1; + enum SQLINTEGER SQL_CDO_DEFAULT = 2; + enum SQLINTEGER SQL_CDO_CONSTRAINT = 4; + enum SQLINTEGER SQL_CDO_COLLATION = 8; + enum SQLINTEGER SQL_CDO_CONSTRAINT_NAME_DEFINITION = 16; + enum SQLINTEGER SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED = 32; + enum SQLINTEGER SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE = 64; + enum SQLINTEGER SQL_CDO_CONSTRAINT_DEFERRABLE = 128; + enum SQLINTEGER SQL_CDO_CONSTRAINT_NON_DEFERRABLE = 256; + enum SQLINTEGER SQL_CT_CREATE_TABLE = 1; + enum SQLINTEGER SQL_CT_COMMIT_PRESERVE = 2; + enum SQLINTEGER SQL_CT_COMMIT_DELETE = 4; + enum SQLINTEGER SQL_CT_GLOBAL_TEMPORARY = 8; + enum SQLINTEGER SQL_CT_LOCAL_TEMPORARY = 16; + enum SQLINTEGER SQL_CT_CONSTRAINT_INITIALLY_DEFERRED = 32; + enum SQLINTEGER SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE = 64; + enum SQLINTEGER SQL_CT_CONSTRAINT_DEFERRABLE = 128; + enum SQLINTEGER SQL_CT_CONSTRAINT_NON_DEFERRABLE = 256; + enum SQLINTEGER SQL_CT_COLUMN_CONSTRAINT = 512; + enum SQLINTEGER SQL_CT_COLUMN_DEFAULT = 1024; + enum SQLINTEGER SQL_CT_COLUMN_COLLATION = 2048; + enum SQLINTEGER SQL_CT_TABLE_CONSTRAINT = 4096; + enum SQLINTEGER SQL_CT_CONSTRAINT_NAME_DEFINITION = 8192; + enum SQLINTEGER SQL_DI_CREATE_INDEX = 1; + enum SQLINTEGER SQL_DI_DROP_INDEX = 2; + enum SQLINTEGER SQL_DC_DROP_COLLATION = 1; + enum SQLINTEGER SQL_DD_DROP_DOMAIN = 1; + enum SQLINTEGER SQL_DD_RESTRICT = 2; + enum SQLINTEGER SQL_DD_CASCADE = 4; + enum SQLINTEGER SQL_DS_DROP_SCHEMA = 1; + enum SQLINTEGER SQL_DS_RESTRICT = 2; + enum SQLINTEGER SQL_DS_CASCADE = 4; + enum SQLINTEGER SQL_DCS_DROP_CHARACTER_SET = 1; + enum SQLINTEGER SQL_DA_DROP_ASSERTION = 1; + enum SQLINTEGER SQL_DT_DROP_TABLE = 1; + enum SQLINTEGER SQL_DT_RESTRICT = 2; + enum SQLINTEGER SQL_DT_CASCADE = 4; + enum SQLINTEGER SQL_DTR_DROP_TRANSLATION = 1; + enum SQLINTEGER SQL_DV_DROP_VIEW = 1; + enum SQLINTEGER SQL_DV_RESTRICT = 2; + enum SQLINTEGER SQL_DV_CASCADE = 4; + enum SQLINTEGER SQL_IS_INSERT_LITERALS = 1; + enum SQLINTEGER SQL_IS_INSERT_SEARCHED = 2; + enum SQLINTEGER SQL_IS_SELECT_INTO = 4; + enum SQLUINTEGER SQL_OIC_CORE = 1u; + enum SQLUINTEGER SQL_OIC_LEVEL1 = 2u; + enum SQLUINTEGER SQL_OIC_LEVEL2 = 3u; + enum SQLINTEGER SQL_SFKD_CASCADE = 1; + enum SQLINTEGER SQL_SFKD_NO_ACTION = 2; + enum SQLINTEGER SQL_SFKD_SET_DEFAULT = 4; + enum SQLINTEGER SQL_SFKD_SET_NULL = 8; + enum SQLINTEGER SQL_SFKU_CASCADE = 1; + enum SQLINTEGER SQL_SFKU_NO_ACTION = 2; + enum SQLINTEGER SQL_SFKU_SET_DEFAULT = 4; + enum SQLINTEGER SQL_SFKU_SET_NULL = 8; + enum SQLINTEGER SQL_SG_USAGE_ON_DOMAIN = 1; + enum SQLINTEGER SQL_SG_USAGE_ON_CHARACTER_SET = 2; + enum SQLINTEGER SQL_SG_USAGE_ON_COLLATION = 4; + enum SQLINTEGER SQL_SG_USAGE_ON_TRANSLATION = 8; + enum SQLINTEGER SQL_SG_WITH_GRANT_OPTION = 16; + enum SQLINTEGER SQL_SG_DELETE_TABLE = 32; + enum SQLINTEGER SQL_SG_INSERT_TABLE = 64; + enum SQLINTEGER SQL_SG_INSERT_COLUMN = 128; + enum SQLINTEGER SQL_SG_REFERENCES_TABLE = 256; + enum SQLINTEGER SQL_SG_REFERENCES_COLUMN = 512; + enum SQLINTEGER SQL_SG_SELECT_TABLE = 1024; + enum SQLINTEGER SQL_SG_UPDATE_TABLE = 2048; + enum SQLINTEGER SQL_SG_UPDATE_COLUMN = 4096; + enum SQLINTEGER SQL_SP_EXISTS = 1; + enum SQLINTEGER SQL_SP_ISNOTNULL = 2; + enum SQLINTEGER SQL_SP_ISNULL = 4; + enum SQLINTEGER SQL_SP_MATCH_FULL = 8; + enum SQLINTEGER SQL_SP_MATCH_PARTIAL = 16; + enum SQLINTEGER SQL_SP_MATCH_UNIQUE_FULL = 32; + enum SQLINTEGER SQL_SP_MATCH_UNIQUE_PARTIAL = 64; + enum SQLINTEGER SQL_SP_OVERLAPS = 128; + enum SQLINTEGER SQL_SP_UNIQUE = 256; + enum SQLINTEGER SQL_SP_LIKE = 512; + enum SQLINTEGER SQL_SP_IN = 1024; + enum SQLINTEGER SQL_SP_BETWEEN = 2048; + enum SQLINTEGER SQL_SP_COMPARISON = 4096; + enum SQLINTEGER SQL_SP_QUANTIFIED_COMPARISON = 8192; + enum SQLINTEGER SQL_SRJO_CORRESPONDING_CLAUSE = 1; + enum SQLINTEGER SQL_SRJO_CROSS_JOIN = 2; + enum SQLINTEGER SQL_SRJO_EXCEPT_JOIN = 4; + enum SQLINTEGER SQL_SRJO_FULL_OUTER_JOIN = 8; + enum SQLINTEGER SQL_SRJO_INNER_JOIN = 16; + enum SQLINTEGER SQL_SRJO_INTERSECT_JOIN = 32; + enum SQLINTEGER SQL_SRJO_LEFT_OUTER_JOIN = 64; + enum SQLINTEGER SQL_SRJO_NATURAL_JOIN = 128; + enum SQLINTEGER SQL_SRJO_RIGHT_OUTER_JOIN = 256; + enum SQLINTEGER SQL_SRJO_UNION_JOIN = 512; + enum SQLINTEGER SQL_SR_USAGE_ON_DOMAIN = 1; + enum SQLINTEGER SQL_SR_USAGE_ON_CHARACTER_SET = 2; + enum SQLINTEGER SQL_SR_USAGE_ON_COLLATION = 4; + enum SQLINTEGER SQL_SR_USAGE_ON_TRANSLATION = 8; + enum SQLINTEGER SQL_SR_GRANT_OPTION_FOR = 16; + enum SQLINTEGER SQL_SR_CASCADE = 32; + enum SQLINTEGER SQL_SR_RESTRICT = 64; + enum SQLINTEGER SQL_SR_DELETE_TABLE = 128; + enum SQLINTEGER SQL_SR_INSERT_TABLE = 256; + enum SQLINTEGER SQL_SR_INSERT_COLUMN = 512; + enum SQLINTEGER SQL_SR_REFERENCES_TABLE = 1024; + enum SQLINTEGER SQL_SR_REFERENCES_COLUMN = 2048; + enum SQLINTEGER SQL_SR_SELECT_TABLE = 4096; + enum SQLINTEGER SQL_SR_UPDATE_TABLE = 8192; + enum SQLINTEGER SQL_SR_UPDATE_COLUMN = 16384; + enum SQLINTEGER SQL_SRVC_VALUE_EXPRESSION = 1; + enum SQLINTEGER SQL_SRVC_NULL = 2; + enum SQLINTEGER SQL_SRVC_DEFAULT = 4; + enum SQLINTEGER SQL_SRVC_ROW_SUBQUERY = 8; + enum SQLINTEGER SQL_SVE_CASE = 1; + enum SQLINTEGER SQL_SVE_CAST = 2; + enum SQLINTEGER SQL_SVE_COALESCE = 4; + enum SQLINTEGER SQL_SVE_NULLIF = 8; + enum SQLINTEGER SQL_SCC_XOPEN_CLI_VERSION1 = 1; + enum SQLINTEGER SQL_SCC_ISO92_CLI = 2; + enum SQLINTEGER SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE = 0; + enum SQLINTEGER SQL_DRIVER_AWARE_POOLING_CAPABLE = 1; + enum SQLINTEGER SQL_DTC_ENLIST_EXPENSIVE = 1; + enum SQLINTEGER SQL_DTC_UNENLIST_EXPENSIVE = 2; + enum SQLINTEGER SQL_ASYNC_DBC_NOT_CAPABLE = 0; + enum SQLINTEGER SQL_ASYNC_DBC_CAPABLE = 1; + enum SQLINTEGER SQL_LC_NONE = 0; + enum SQLINTEGER SQL_LC_TAKE = 1; + enum SQLINTEGER SQL_LC_SKIP = 3; + enum SQLINTEGER SQL_RC_NONE = 0; + enum SQLINTEGER SQL_RC_INSERT_SINGLE_ROWID = 1; + auto SQL_RC_INSERT_SINGLE_ANY()() + { + return 2 | SQL_RC_INSERT_SINGLE_ROWID; + } + auto SQL_RC_INSERT_MULTIPLE_ROWID()() + { + return 4 | SQL_RC_INSERT_SINGLE_ROWID; + } + auto SQL_RC_INSERT_MULTIPLE_ANY()() + { + return 8 | SQL_RC_INSERT_MULTIPLE_ROWID | SQL_RC_INSERT_SINGLE_ANY; + } + enum SQLINTEGER SQL_RC_INSERT_SELECT_ROWID = 16; + auto SQL_RC_INSERT_SELECT_ANY()() + { + return 32 | SQL_RC_INSERT_SELECT_ROWID; + } + enum SQLINTEGER SQL_RC_UPDATE_ROWID = 64; + auto SQL_RC_UPDATE_ANY()() + { + return 128 | SQL_RC_UPDATE_ROWID; + } + enum SQLINTEGER SQL_RC_DELETE_ROWID = 256; + auto SQL_RC_DELETE_ANY()() + { + return 512 | SQL_RC_DELETE_ROWID; + } + enum SQLINTEGER SQL_RC_SELECT_INTO_ROWID = 1024; + auto SQL_RC_SELECT_INTO_ANY()() + { + return 2048 | SQL_RC_SELECT_INTO_ROWID; + } + enum SQLINTEGER SQL_FC_NONE = 0; + enum SQLINTEGER SQL_FC_JSON = 1; + enum SQLINTEGER SQL_FC_JSON_BINARY = 2; + enum SQLINTEGER SQL_FETCH_FIRST_USER = 31; + enum SQLINTEGER SQL_FETCH_FIRST_SYSTEM = 32; + enum SQLINTEGER SQL_ENTIRE_ROWSET = 0; + enum SQLINTEGER SQL_POSITION = 0; + enum SQLINTEGER SQL_REFRESH = 1; + enum SQLINTEGER SQL_UPDATE = 2; + enum SQLINTEGER SQL_DELETE = 3; + enum SQLINTEGER SQL_ADD = 4; + enum SQLINTEGER SQL_UPDATE_BY_BOOKMARK = 5; + enum SQLINTEGER SQL_DELETE_BY_BOOKMARK = 6; + enum SQLINTEGER SQL_FETCH_BY_BOOKMARK = 7; + enum SQLINTEGER SQL_LOCK_NO_CHANGE = 0; + enum SQLINTEGER SQL_LOCK_EXCLUSIVE = 1; + enum SQLINTEGER SQL_LOCK_UNLOCK = 2; + auto SQL_POSITION_TO(__MP4, __MP5)(__MP4 hstmt, __MP5 irow) + { + return SQLSetPos(hstmt, irow, SQL_POSITION, SQL_LOCK_NO_CHANGE); + } + auto SQL_LOCK_RECORD(__MP6, __MP7, __MP8)(__MP6 hstmt, __MP7 irow, __MP8 fLock) + { + return SQLSetPos(hstmt, irow, SQL_POSITION, fLock); + } + auto SQL_REFRESH_RECORD(__MP9, __MP10, __MP11)(__MP9 hstmt, __MP10 irow, __MP11 fLock) + { + return SQLSetPos(hstmt, irow, SQL_REFRESH, fLock); + } + auto SQL_UPDATE_RECORD(__MP12, __MP13)(__MP12 hstmt, __MP13 irow) + { + return SQLSetPos(hstmt, irow, SQL_UPDATE, SQL_LOCK_NO_CHANGE); + } + auto SQL_DELETE_RECORD(__MP14, __MP15)(__MP14 hstmt, __MP15 irow) + { + return SQLSetPos(hstmt, irow, SQL_DELETE, SQL_LOCK_NO_CHANGE); + } + auto SQL_ADD_RECORD(__MP16, __MP17)(__MP16 hstmt, __MP17 irow) + { + return SQLSetPos(hstmt, irow, SQL_ADD, SQL_LOCK_NO_CHANGE); + } + enum SQLINTEGER SQL_BEST_ROWID = 1; + enum SQLINTEGER SQL_ROWVER = 2; + enum SQLINTEGER SQL_PC_NOT_PSEUDO = 1; + enum SQLINTEGER SQL_QUICK = 0; + enum SQLINTEGER SQL_ENSURE = 1; + enum SQLINTEGER SQL_TABLE_STAT = 0; + enum SQL_ALL_CATALOGS = "%"; + enum SQL_ALL_SCHEMAS = "%"; + enum SQL_ALL_TABLE_TYPES = "%"; + enum SQLINTEGER SQL_DRIVER_NOPROMPT = 0; + enum SQLINTEGER SQL_DRIVER_COMPLETE = 1; + enum SQLINTEGER SQL_DRIVER_PROMPT = 2; + enum SQLINTEGER SQL_DRIVER_COMPLETE_REQUIRED = 3; + enum SQLINTEGER SQL_FETCH_BOOKMARK = 8; + enum SQLINTEGER SQL_ROW_SUCCESS = 0; + enum SQLINTEGER SQL_ROW_DELETED = 1; + enum SQLINTEGER SQL_ROW_UPDATED = 2; + enum SQLINTEGER SQL_ROW_NOROW = 3; + enum SQLINTEGER SQL_ROW_ADDED = 4; + enum SQLINTEGER SQL_ROW_ERROR = 5; + enum SQLINTEGER SQL_ROW_SUCCESS_WITH_INFO = 6; + enum SQLINTEGER SQL_ROW_PROCEED = 0; + enum SQLINTEGER SQL_ROW_IGNORE = 1; + enum SQLINTEGER SQL_PARAM_SUCCESS = 0; + enum SQLINTEGER SQL_PARAM_SUCCESS_WITH_INFO = 6; + enum SQLINTEGER SQL_PARAM_ERROR = 5; + enum SQLINTEGER SQL_PARAM_UNUSED = 7; + enum SQLINTEGER SQL_PARAM_DIAG_UNAVAILABLE = 1; + enum SQLINTEGER SQL_PARAM_PROCEED = 0; + enum SQLINTEGER SQL_PARAM_IGNORE = 1; + enum SQLINTEGER SQL_CASCADE = 0; + enum SQLINTEGER SQL_RESTRICT = 1; + enum SQLINTEGER SQL_SET_NULL = 2; + enum SQLINTEGER SQL_NO_ACTION = 3; + enum SQLINTEGER SQL_SET_DEFAULT = 4; + enum SQLINTEGER SQL_INITIALLY_DEFERRED = 5; + enum SQLINTEGER SQL_INITIALLY_IMMEDIATE = 6; + enum SQLINTEGER SQL_NOT_DEFERRABLE = 7; + enum SQLINTEGER SQL_PARAM_TYPE_UNKNOWN = 0; + enum SQLINTEGER SQL_PARAM_INPUT = 1; + enum SQLINTEGER SQL_PARAM_INPUT_OUTPUT = 2; + enum SQLINTEGER SQL_RESULT_COL = 3; + enum SQLINTEGER SQL_PARAM_OUTPUT = 4; + enum SQLINTEGER SQL_RETURN_VALUE = 5; + enum SQLINTEGER SQL_PARAM_INPUT_OUTPUT_STREAM = 8; + enum SQLINTEGER SQL_PARAM_OUTPUT_STREAM = 16; + enum SQLINTEGER SQL_PT_UNKNOWN = 0; + enum SQLINTEGER SQL_PT_PROCEDURE = 1; + enum SQLINTEGER SQL_PT_FUNCTION = 2; + auto SQL_WCHAR()() + { + return -8; + } + auto SQL_WVARCHAR()() + { + return -9; + } + auto SQL_WLONGVARCHAR()() + { + return -10; + } + enum SQLINTEGER SQL_SQLSTATE_SIZEW = 10; +} diff --git a/libphobos/src/etc/c/odbc/odbc64.d b/libphobos/src/etc/c/odbc/odbc64.d new file mode 100644 index 00000000000..a2d3417486c --- /dev/null +++ b/libphobos/src/etc/c/odbc/odbc64.d @@ -0,0 +1,1813 @@ +module etc.c.odbc.odbc64; +public: + +extern (C) +{ + alias SQLCHAR = ubyte; + alias SQLSCHAR = byte; + alias SQLDATE = ubyte; + alias SQLDECIMAL = ubyte; + alias SQLDOUBLE = double; + alias SQLFLOAT = double; + alias SQLINTEGER = int; + alias SQLUINTEGER = uint; + alias SQLLEN = long; + alias SQLULEN = ulong; + alias SQLSETPOSIROW = ulong; + alias SQLNUMERIC = ubyte; + alias SQLPOINTER = void*; + alias SQLREAL = float; + alias SQLSMALLINT = short; + alias SQLUSMALLINT = ushort; + alias SQLTIME = ubyte; + alias SQLTIMESTAMP = ubyte; + alias SQLVARCHAR = ubyte; + alias SQLTIMEWITHTIMEZONE = ubyte; + alias SQLTIMESTAMPWITHTIMEZONE = ubyte; + alias SQLRETURN = short; + alias SQLHANDLE = void*; + alias SQLHENV = void*; + alias SQLHDBC = void*; + alias SQLHSTMT = void*; + alias SQLHDESC = void*; + alias RETCODE = short; + alias SQLHWND = void*; + struct tagDATE_STRUCT + { + SQLSMALLINT year = void; + SQLUSMALLINT month = void; + SQLUSMALLINT day = void; + } + alias DATE_STRUCT = tagDATE_STRUCT; + alias SQL_DATE_STRUCT = tagDATE_STRUCT; + struct tagTIME_STRUCT + { + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + } + alias TIME_STRUCT = tagTIME_STRUCT; + alias SQL_TIME_STRUCT = tagTIME_STRUCT; + struct tagTIMESTAMP_STRUCT + { + SQLSMALLINT year = void; + SQLUSMALLINT month = void; + SQLUSMALLINT day = void; + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + SQLUINTEGER fraction = void; + } + alias TIMESTAMP_STRUCT = tagTIMESTAMP_STRUCT; + alias SQL_TIMESTAMP_STRUCT = tagTIMESTAMP_STRUCT; + struct tagTIME_WITH_TIMEZONE_STRUCT + { + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + SQLSMALLINT timezone_hours = void; + SQLUSMALLINT timezone_minutes = void; + } + alias TIME_WITH_TIMEZONE_STRUCT = tagTIME_WITH_TIMEZONE_STRUCT; + alias SQL_TIME_WITH_TIMEZONE_STRUCT = tagTIME_WITH_TIMEZONE_STRUCT; + struct tagTIMESTAMP_WITH_TIMEZONE_STRUCT + { + SQLSMALLINT year = void; + SQLUSMALLINT month = void; + SQLUSMALLINT day = void; + SQLUSMALLINT hour = void; + SQLUSMALLINT minute = void; + SQLUSMALLINT second = void; + SQLUINTEGER fraction = void; + SQLSMALLINT timezone_hours = void; + SQLUSMALLINT timezone_minutes = void; + } + alias TIMESTAMP_WITH_TIMEZONE_STRUCT = tagTIMESTAMP_WITH_TIMEZONE_STRUCT; + alias SQL_TIMESTAMP_WITH_TIMEZONE_STRUCT = tagTIMESTAMP_WITH_TIMEZONE_STRUCT; + enum SQLINTERVAL + { + SQL_IS_YEAR = 1, + SQL_IS_MONTH = 2, + SQL_IS_DAY = 3, + SQL_IS_HOUR = 4, + SQL_IS_MINUTE = 5, + SQL_IS_SECOND = 6, + SQL_IS_YEAR_TO_MONTH = 7, + SQL_IS_DAY_TO_HOUR = 8, + SQL_IS_DAY_TO_MINUTE = 9, + SQL_IS_DAY_TO_SECOND = 10, + SQL_IS_HOUR_TO_MINUTE = 11, + SQL_IS_HOUR_TO_SECOND = 12, + SQL_IS_MINUTE_TO_SECOND = 13, + } + alias SQL_IS_YEAR = SQLINTERVAL.SQL_IS_YEAR; + alias SQL_IS_MONTH = SQLINTERVAL.SQL_IS_MONTH; + alias SQL_IS_DAY = SQLINTERVAL.SQL_IS_DAY; + alias SQL_IS_HOUR = SQLINTERVAL.SQL_IS_HOUR; + alias SQL_IS_MINUTE = SQLINTERVAL.SQL_IS_MINUTE; + alias SQL_IS_SECOND = SQLINTERVAL.SQL_IS_SECOND; + alias SQL_IS_YEAR_TO_MONTH = SQLINTERVAL.SQL_IS_YEAR_TO_MONTH; + alias SQL_IS_DAY_TO_HOUR = SQLINTERVAL.SQL_IS_DAY_TO_HOUR; + alias SQL_IS_DAY_TO_MINUTE = SQLINTERVAL.SQL_IS_DAY_TO_MINUTE; + alias SQL_IS_DAY_TO_SECOND = SQLINTERVAL.SQL_IS_DAY_TO_SECOND; + alias SQL_IS_HOUR_TO_MINUTE = SQLINTERVAL.SQL_IS_HOUR_TO_MINUTE; + alias SQL_IS_HOUR_TO_SECOND = SQLINTERVAL.SQL_IS_HOUR_TO_SECOND; + alias SQL_IS_MINUTE_TO_SECOND = SQLINTERVAL.SQL_IS_MINUTE_TO_SECOND; + struct tagSQL_YEAR_MONTH + { + SQLUINTEGER year = void; + SQLUINTEGER month = void; + } + alias SQL_YEAR_MONTH_STRUCT = tagSQL_YEAR_MONTH; + struct tagSQL_DAY_SECOND + { + SQLUINTEGER day = void; + SQLUINTEGER hour = void; + SQLUINTEGER minute = void; + SQLUINTEGER second = void; + SQLUINTEGER fraction = void; + } + alias SQL_DAY_SECOND_STRUCT = tagSQL_DAY_SECOND; + struct tagSQL_INTERVAL_STRUCT + { + SQLINTERVAL interval_type = void; + SQLSMALLINT interval_sign = void; + union intval { SQL_YEAR_MONTH_STRUCT year_month = void; SQL_DAY_SECOND_STRUCT day_second = void; } + } + alias SQL_INTERVAL_STRUCT = tagSQL_INTERVAL_STRUCT; + alias SQLBIGINT = long; + alias SQLUBIGINT = ulong; + struct tagSQL_NUMERIC_STRUCT + { + SQLCHAR precision = void; + SQLSCHAR scale = void; + SQLCHAR sign = void; + SQLCHAR[SQL_MAX_NUMERIC_LEN] val = void; + } + alias SQL_NUMERIC_STRUCT = tagSQL_NUMERIC_STRUCT; + struct tagSQLGUID + { + SQLUINTEGER Data1 = void; + SQLUSMALLINT Data2 = void; + SQLUSMALLINT Data3 = void; + SQLCHAR[8] Data4 = void; + } + alias SQLGUID = tagSQLGUID; + alias BOOKMARK = ulong; + alias SQLWCHAR = ushort; + alias SQLTCHAR = ubyte; + nothrow @nogc SQLRETURN SQLAllocConnect(SQLHENV EnvironmentHandle, SQLHDBC* ConnectionHandle); + nothrow @nogc SQLRETURN SQLAllocEnv(SQLHENV* EnvironmentHandle); + nothrow @nogc SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE* OutputHandle); + nothrow @nogc SQLRETURN SQLAllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT* StatementHandle); + nothrow @nogc SQLRETURN SQLBindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN* StrLen_or_Ind); + deprecated("ODBC API: SQLBindParam is deprecated. Please use SQLBindParameter instead.") deprecated nothrow @nogc SQLRETURN SQLBindParam(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLULEN LengthPrecision, SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, SQLLEN* StrLen_or_Ind); + nothrow @nogc SQLRETURN SQLCancel(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLCancelHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle); + nothrow @nogc SQLRETURN SQLCloseCursor(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLColAttribute(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier, SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength, SQLSMALLINT* StringLength, SQLLEN* NumericAttribute); + nothrow @nogc SQLRETURN SQLColumns(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLCHAR* ColumnName, SQLSMALLINT NameLength4); + nothrow @nogc SQLRETURN SQLCompleteAsync(SQLSMALLINT HandleType, SQLHANDLE Handle, RETCODE* AsyncRetCodePtr); + nothrow @nogc SQLRETURN SQLConnect(SQLHDBC ConnectionHandle, SQLCHAR* ServerName, SQLSMALLINT NameLength1, SQLCHAR* UserName, SQLSMALLINT NameLength2, SQLCHAR* Authentication, SQLSMALLINT NameLength3); + nothrow @nogc SQLRETURN SQLCopyDesc(SQLHDESC SourceDescHandle, SQLHDESC TargetDescHandle); + nothrow @nogc SQLRETURN SQLDataSources(SQLHENV EnvironmentHandle, SQLUSMALLINT Direction, SQLCHAR* ServerName, SQLSMALLINT BufferLength1, SQLSMALLINT* NameLength1Ptr, SQLCHAR* Description, SQLSMALLINT BufferLength2, SQLSMALLINT* NameLength2Ptr); + nothrow @nogc SQLRETURN SQLDescribeCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLCHAR* ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT* NameLength, SQLSMALLINT* DataType, SQLULEN* ColumnSize, SQLSMALLINT* DecimalDigits, SQLSMALLINT* Nullable); + nothrow @nogc SQLRETURN SQLDisconnect(SQLHDBC ConnectionHandle); + nothrow @nogc SQLRETURN SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT CompletionType); + nothrow @nogc SQLRETURN SQLError(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, SQLCHAR* Sqlstate, SQLINTEGER* NativeError, SQLCHAR* MessageText, SQLSMALLINT BufferLength, SQLSMALLINT* TextLength); + nothrow @nogc SQLRETURN SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR* StatementText, SQLINTEGER TextLength); + nothrow @nogc SQLRETURN SQLExecute(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLFetch(SQLHSTMT StatementHandle); + nothrow @nogc SQLRETURN SQLFetchScroll(SQLHSTMT StatementHandle, SQLSMALLINT FetchOrientation, SQLLEN FetchOffset); + nothrow @nogc SQLRETURN SQLFreeConnect(SQLHDBC ConnectionHandle); + nothrow @nogc SQLRETURN SQLFreeEnv(SQLHENV EnvironmentHandle); + nothrow @nogc SQLRETURN SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle); + nothrow @nogc SQLRETURN SQLFreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option); + nothrow @nogc SQLRETURN SQLGetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLengthPtr); + deprecated("ODBC API: SQLGetConnectOption is deprecated. Please use SQLGetConnectAttr instead.") deprecated nothrow @nogc SQLRETURN SQLGetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLPOINTER Value); + nothrow @nogc SQLRETURN SQLGetCursorName(SQLHSTMT StatementHandle, SQLCHAR* CursorName, SQLSMALLINT BufferLength, SQLSMALLINT* NameLengthPtr); + nothrow @nogc SQLRETURN SQLGetData(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLLEN BufferLength, SQLLEN* StrLen_or_IndPtr); + nothrow @nogc SQLRETURN SQLGetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLCHAR* Name, SQLSMALLINT BufferLength, SQLSMALLINT* StringLengthPtr, SQLSMALLINT* TypePtr, SQLSMALLINT* SubTypePtr, SQLLEN* LengthPtr, SQLSMALLINT* PrecisionPtr, SQLSMALLINT* ScalePtr, SQLSMALLINT* NullablePtr); + nothrow @nogc SQLRETURN SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT* StringLength); + nothrow @nogc SQLRETURN SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLSMALLINT RecNumber, SQLCHAR* Sqlstate, SQLINTEGER* NativeError, SQLCHAR* MessageText, SQLSMALLINT BufferLength, SQLSMALLINT* TextLength); + nothrow @nogc SQLRETURN SQLGetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetFunctions(SQLHDBC ConnectionHandle, SQLUSMALLINT FunctionId, SQLUSMALLINT* Supported); + nothrow @nogc SQLRETURN SQLGetInfo(SQLHDBC ConnectionHandle, SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT* StringLengthPtr); + nothrow @nogc SQLRETURN SQLGetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER* StringLength); + deprecated("ODBC API: SQLGetStmtOption is deprecated. Please use SQLGetStmtAttr instead.") deprecated nothrow @nogc SQLRETURN SQLGetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLPOINTER Value); + nothrow @nogc SQLRETURN SQLGetTypeInfo(SQLHSTMT StatementHandle, SQLSMALLINT DataType); + nothrow @nogc SQLRETURN SQLNumResultCols(SQLHSTMT StatementHandle, SQLSMALLINT* ColumnCount); + nothrow @nogc SQLRETURN SQLParamData(SQLHSTMT StatementHandle, SQLPOINTER* Value); + nothrow @nogc SQLRETURN SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR* StatementText, SQLINTEGER TextLength); + nothrow @nogc SQLRETURN SQLPutData(SQLHSTMT StatementHandle, SQLPOINTER Data, SQLLEN StrLen_or_Ind); + nothrow @nogc SQLRETURN SQLRowCount(SQLHSTMT StatementHandle, SQLLEN* RowCount); + nothrow @nogc SQLRETURN SQLSetConnectAttr(SQLHDBC ConnectionHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); + deprecated("ODBC API: SQLSetConnectOption is deprecated. Please use SQLSetConnectAttr instead.") deprecated nothrow @nogc SQLRETURN SQLSetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLULEN Value); + nothrow @nogc SQLRETURN SQLSetCursorName(SQLHSTMT StatementHandle, SQLCHAR* CursorName, SQLSMALLINT NameLength); + nothrow @nogc SQLRETURN SQLSetDescField(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength); + nothrow @nogc SQLRETURN SQLSetDescRec(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT Type, SQLSMALLINT SubType, SQLLEN Length, SQLSMALLINT Precision, SQLSMALLINT Scale, SQLPOINTER Data, SQLLEN* StringLength, SQLLEN* Indicator); + nothrow @nogc SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); + deprecated("ODBC API: SQLSetParam is deprecated. Please use SQLBindParameter instead.") deprecated nothrow @nogc SQLRETURN SQLSetParam(SQLHSTMT StatementHandle, SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType, SQLSMALLINT ParameterType, SQLULEN LengthPrecision, SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue, SQLLEN* StrLen_or_Ind); + nothrow @nogc SQLRETURN SQLSetStmtAttr(SQLHSTMT StatementHandle, SQLINTEGER Attribute, SQLPOINTER Value, SQLINTEGER StringLength); + deprecated("ODBC API: SQLSetStmtOption is deprecated. Please use SQLSetStmtAttr instead.") deprecated nothrow @nogc SQLRETURN SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLULEN Value); + nothrow @nogc SQLRETURN SQLSpecialColumns(SQLHSTMT StatementHandle, SQLUSMALLINT IdentifierType, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Scope, SQLUSMALLINT Nullable); + nothrow @nogc SQLRETURN SQLStatistics(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Unique, SQLUSMALLINT Reserved); + nothrow @nogc SQLRETURN SQLTables(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TableName, SQLSMALLINT NameLength3, SQLCHAR* TableType, SQLSMALLINT NameLength4); + nothrow @nogc SQLRETURN SQLTransact(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType); + alias SQLSTATE = ubyte[SQL_SQLSTATE_SIZE + 1]; + nothrow @nogc SQLRETURN SQLDriverConnect(SQLHDBC hdbc, SQLHWND hwnd, SQLCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut, SQLUSMALLINT fDriverCompletion); + nothrow @nogc SQLRETURN SQLBrowseConnect(SQLHDBC hdbc, SQLCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut); + nothrow @nogc SQLRETURN SQLBulkOperations(SQLHSTMT StatementHandle, SQLSMALLINT Operation); + nothrow @nogc SQLRETURN SQLColAttributes(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc, SQLLEN* pfDesc); + nothrow @nogc SQLRETURN SQLColumnPrivileges(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szTableName, SQLSMALLINT cchTableName, SQLCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLDescribeParam(SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT* pfSqlType, SQLULEN* pcbParamDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLExtendedFetch(SQLHSTMT hstmt, SQLUSMALLINT fFetchType, SQLLEN irow, SQLULEN* pcrow, SQLUSMALLINT* rgfRowStatus); + nothrow @nogc SQLRETURN SQLForeignKeys(SQLHSTMT hstmt, SQLCHAR* szPkCatalogName, SQLSMALLINT cchPkCatalogName, SQLCHAR* szPkSchemaName, SQLSMALLINT cchPkSchemaName, SQLCHAR* szPkTableName, SQLSMALLINT cchPkTableName, SQLCHAR* szFkCatalogName, SQLSMALLINT cchFkCatalogName, SQLCHAR* szFkSchemaName, SQLSMALLINT cchFkSchemaName, SQLCHAR* szFkTableName, SQLSMALLINT cchFkTableName); + nothrow @nogc SQLRETURN SQLMoreResults(SQLHSTMT hstmt); + nothrow @nogc SQLRETURN SQLNativeSql(SQLHDBC hdbc, SQLCHAR* szSqlStrIn, SQLINTEGER cchSqlStrIn, SQLCHAR* szSqlStr, SQLINTEGER cchSqlStrMax, SQLINTEGER* pcbSqlStr); + nothrow @nogc SQLRETURN SQLNumParams(SQLHSTMT hstmt, SQLSMALLINT* pcpar); + nothrow @nogc SQLRETURN SQLParamOptions(SQLHSTMT hstmt, SQLULEN crow, SQLULEN* pirow); + nothrow @nogc SQLRETURN SQLPrimaryKeys(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLProcedureColumns(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szProcName, SQLSMALLINT cchProcName, SQLCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLProcedures(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szProcName, SQLSMALLINT cchProcName); + nothrow @nogc SQLRETURN SQLSetPos(SQLHSTMT hstmt, SQLSETPOSIROW irow, SQLUSMALLINT fOption, SQLUSMALLINT fLock); + nothrow @nogc SQLRETURN SQLTablePrivileges(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLDrivers(SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR* szDriverDesc, SQLSMALLINT cchDriverDescMax, SQLSMALLINT* pcchDriverDesc, SQLCHAR* szDriverAttributes, SQLSMALLINT cchDrvrAttrMax, SQLSMALLINT* pcchDrvrAttr); + nothrow @nogc SQLRETURN SQLBindParameter(SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT fParamType, SQLSMALLINT fCType, SQLSMALLINT fSqlType, SQLULEN cbColDef, SQLSMALLINT ibScale, SQLPOINTER rgbValue, SQLLEN cbValueMax, SQLLEN* pcbValue); + nothrow @nogc SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE* OutputHandle); + nothrow @nogc SQLRETURN SQLGetNestedHandle(SQLHSTMT ParentStatementHandle, SQLUSMALLINT Col_or_Param_Num, SQLHSTMT* OutputChildStatementHandle); + nothrow @nogc SQLRETURN SQLStructuredTypes(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TypeName, SQLSMALLINT NameLength3); + nothrow @nogc SQLRETURN SQLStructuredTypeColumns(SQLHSTMT StatementHandle, SQLCHAR* CatalogName, SQLSMALLINT NameLength1, SQLCHAR* SchemaName, SQLSMALLINT NameLength2, SQLCHAR* TypeName, SQLSMALLINT NameLength3, SQLCHAR* ColumnName, SQLSMALLINT NameLength4); + nothrow @nogc SQLRETURN SQLNextColumn(SQLHSTMT StatementHandle, SQLUSMALLINT* ColumnCount); + nothrow @nogc SQLRETURN SQLAllocHandleStd(SQLSMALLINT fHandleType, SQLHANDLE hInput, SQLHANDLE* phOutput); + nothrow @nogc SQLRETURN SQLColAttributeW(SQLHSTMT hstmt, SQLUSMALLINT iCol, SQLUSMALLINT iField, SQLPOINTER pCharAttr, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbCharAttr, SQLLEN* pNumAttr); + nothrow @nogc SQLRETURN SQLColAttributesW(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc, SQLLEN* pfDesc); + nothrow @nogc SQLRETURN SQLConnectW(SQLHDBC hdbc, SQLWCHAR* szDSN, SQLSMALLINT cchDSN, SQLWCHAR* szUID, SQLSMALLINT cchUID, SQLWCHAR* szAuthStr, SQLSMALLINT cchAuthStr); + nothrow @nogc SQLRETURN SQLDescribeColW(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLWCHAR* szColName, SQLSMALLINT cchColNameMax, SQLSMALLINT* pcchColName, SQLSMALLINT* pfSqlType, SQLULEN* pcbColDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLErrorW(SQLHENV henv, SQLHDBC hdbc, SQLHSTMT hstmt, SQLWCHAR* wszSqlState, SQLINTEGER* pfNativeError, SQLWCHAR* wszErrorMsg, SQLSMALLINT cchErrorMsgMax, SQLSMALLINT* pcchErrorMsg); + nothrow @nogc SQLRETURN SQLExecDirectW(SQLHSTMT hstmt, SQLWCHAR* szSqlStr, SQLINTEGER TextLength); + nothrow @nogc SQLRETURN SQLGetConnectAttrW(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLGetCursorNameW(SQLHSTMT hstmt, SQLWCHAR* szCursor, SQLSMALLINT cchCursorMax, SQLSMALLINT* pcchCursor); + nothrow @nogc SQLRETURN SQLSetDescFieldW(SQLHDESC DescriptorHandle, SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength); + nothrow @nogc SQLRETURN SQLGetDescFieldW(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLSMALLINT iField, SQLPOINTER rgbValue, SQLINTEGER cbBufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetDescRecW(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLWCHAR* szName, SQLSMALLINT cchNameMax, SQLSMALLINT* pcchName, SQLSMALLINT* pfType, SQLSMALLINT* pfSubType, SQLLEN* pLength, SQLSMALLINT* pPrecision, SQLSMALLINT* pScale, SQLSMALLINT* pNullable); + nothrow @nogc SQLRETURN SQLGetDiagFieldW(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLSMALLINT fDiagField, SQLPOINTER rgbDiagInfo, SQLSMALLINT cbBufferLength, SQLSMALLINT* pcbStringLength); + nothrow @nogc SQLRETURN SQLGetDiagRecW(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLWCHAR* szSqlState, SQLINTEGER* pfNativeError, SQLWCHAR* szErrorMsg, SQLSMALLINT cchErrorMsgMax, SQLSMALLINT* pcchErrorMsg); + nothrow @nogc SQLRETURN SQLPrepareW(SQLHSTMT hstmt, SQLWCHAR* szSqlStr, SQLINTEGER cchSqlStr); + nothrow @nogc SQLRETURN SQLSetConnectAttrW(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValue); + nothrow @nogc SQLRETURN SQLSetCursorNameW(SQLHSTMT hstmt, SQLWCHAR* szCursor, SQLSMALLINT cchCursor); + nothrow @nogc SQLRETURN SQLColumnsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLGetConnectOptionW(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLPOINTER pvParam); + nothrow @nogc SQLRETURN SQLGetInfoW(SQLHDBC hdbc, SQLUSMALLINT fInfoType, SQLPOINTER rgbInfoValue, SQLSMALLINT cbInfoValueMax, SQLSMALLINT* pcbInfoValue); + nothrow @nogc SQLRETURN SQLGetTypeInfoW(SQLHSTMT StatementHandle, SQLSMALLINT DataType); + nothrow @nogc SQLRETURN SQLSetConnectOptionW(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLULEN vParam); + nothrow @nogc SQLRETURN SQLSpecialColumnsW(SQLHSTMT hstmt, SQLUSMALLINT fColType, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLUSMALLINT fScope, SQLUSMALLINT fNullable); + nothrow @nogc SQLRETURN SQLStatisticsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLUSMALLINT fUnique, SQLUSMALLINT fAccuracy); + nothrow @nogc SQLRETURN SQLTablesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLWCHAR* szTableType, SQLSMALLINT cchTableType); + nothrow @nogc SQLRETURN SQLDataSourcesW(SQLHENV henv, SQLUSMALLINT fDirection, SQLWCHAR* szDSN, SQLSMALLINT cchDSNMax, SQLSMALLINT* pcchDSN, SQLWCHAR* wszDescription, SQLSMALLINT cchDescriptionMax, SQLSMALLINT* pcchDescription); + nothrow @nogc SQLRETURN SQLDriverConnectW(SQLHDBC hdbc, SQLHWND hwnd, SQLWCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLWCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut, SQLUSMALLINT fDriverCompletion); + nothrow @nogc SQLRETURN SQLBrowseConnectW(SQLHDBC hdbc, SQLWCHAR* szConnStrIn, SQLSMALLINT cchConnStrIn, SQLWCHAR* szConnStrOut, SQLSMALLINT cchConnStrOutMax, SQLSMALLINT* pcchConnStrOut); + nothrow @nogc SQLRETURN SQLColumnPrivilegesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLGetStmtAttrW(SQLHSTMT hstmt, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLSetStmtAttrW(SQLHSTMT hstmt, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax); + nothrow @nogc SQLRETURN SQLForeignKeysW(SQLHSTMT hstmt, SQLWCHAR* szPkCatalogName, SQLSMALLINT cchPkCatalogName, SQLWCHAR* szPkSchemaName, SQLSMALLINT cchPkSchemaName, SQLWCHAR* szPkTableName, SQLSMALLINT cchPkTableName, SQLWCHAR* szFkCatalogName, SQLSMALLINT cchFkCatalogName, SQLWCHAR* szFkSchemaName, SQLSMALLINT cchFkSchemaName, SQLWCHAR* szFkTableName, SQLSMALLINT cchFkTableName); + nothrow @nogc SQLRETURN SQLNativeSqlW(SQLHDBC hdbc, SQLWCHAR* szSqlStrIn, SQLINTEGER cchSqlStrIn, SQLWCHAR* szSqlStr, SQLINTEGER cchSqlStrMax, SQLINTEGER* pcchSqlStr); + nothrow @nogc SQLRETURN SQLPrimaryKeysW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLProcedureColumnsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szProcName, SQLSMALLINT cchProcName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLProceduresW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szProcName, SQLSMALLINT cchProcName); + nothrow @nogc SQLRETURN SQLTablePrivilegesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTableName, SQLSMALLINT cchTableName); + nothrow @nogc SQLRETURN SQLDriversW(SQLHENV henv, SQLUSMALLINT fDirection, SQLWCHAR* szDriverDesc, SQLSMALLINT cchDriverDescMax, SQLSMALLINT* pcchDriverDesc, SQLWCHAR* szDriverAttributes, SQLSMALLINT cchDrvrAttrMax, SQLSMALLINT* pcchDrvrAttr); + nothrow @nogc SQLRETURN SQLStructuredTypesW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTypeName, SQLSMALLINT cchTypeName); + nothrow @nogc SQLRETURN SQLStructuredTypeColumnsW(SQLHSTMT hstmt, SQLWCHAR* szCatalogName, SQLSMALLINT cchCatalogName, SQLWCHAR* szSchemaName, SQLSMALLINT cchSchemaName, SQLWCHAR* szTypeName, SQLSMALLINT cchTypeName, SQLWCHAR* szColumnName, SQLSMALLINT cchColumnName); + nothrow @nogc SQLRETURN SQLColAttributeA(SQLHSTMT hstmt, SQLSMALLINT iCol, SQLSMALLINT iField, SQLPOINTER pCharAttr, SQLSMALLINT cbCharAttrMax, SQLSMALLINT* pcbCharAttr, SQLLEN* pNumAttr); + nothrow @nogc SQLRETURN SQLColAttributesA(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLUSMALLINT fDescType, SQLPOINTER rgbDesc, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc, SQLLEN* pfDesc); + nothrow @nogc SQLRETURN SQLConnectA(SQLHDBC hdbc, SQLCHAR* szDSN, SQLSMALLINT cbDSN, SQLCHAR* szUID, SQLSMALLINT cbUID, SQLCHAR* szAuthStr, SQLSMALLINT cbAuthStr); + nothrow @nogc SQLRETURN SQLDescribeColA(SQLHSTMT hstmt, SQLUSMALLINT icol, SQLCHAR* szColName, SQLSMALLINT cbColNameMax, SQLSMALLINT* pcbColName, SQLSMALLINT* pfSqlType, SQLULEN* pcbColDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLErrorA(SQLHENV henv, SQLHDBC hdbc, SQLHSTMT hstmt, SQLCHAR* szSqlState, SQLINTEGER* pfNativeError, SQLCHAR* szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT* pcbErrorMsg); + nothrow @nogc SQLRETURN SQLExecDirectA(SQLHSTMT hstmt, SQLCHAR* szSqlStr, SQLINTEGER cbSqlStr); + nothrow @nogc SQLRETURN SQLGetConnectAttrA(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLGetCursorNameA(SQLHSTMT hstmt, SQLCHAR* szCursor, SQLSMALLINT cbCursorMax, SQLSMALLINT* pcbCursor); + nothrow @nogc SQLRETURN SQLGetDescFieldA(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLSMALLINT iField, SQLPOINTER rgbValue, SQLINTEGER cbBufferLength, SQLINTEGER* StringLength); + nothrow @nogc SQLRETURN SQLGetDescRecA(SQLHDESC hdesc, SQLSMALLINT iRecord, SQLCHAR* szName, SQLSMALLINT cbNameMax, SQLSMALLINT* pcbName, SQLSMALLINT* pfType, SQLSMALLINT* pfSubType, SQLLEN* pLength, SQLSMALLINT* pPrecision, SQLSMALLINT* pScale, SQLSMALLINT* pNullable); + nothrow @nogc SQLRETURN SQLGetDiagFieldA(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLSMALLINT fDiagField, SQLPOINTER rgbDiagInfo, SQLSMALLINT cbDiagInfoMax, SQLSMALLINT* pcbDiagInfo); + nothrow @nogc SQLRETURN SQLGetDiagRecA(SQLSMALLINT fHandleType, SQLHANDLE handle, SQLSMALLINT iRecord, SQLCHAR* szSqlState, SQLINTEGER* pfNativeError, SQLCHAR* szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT* pcbErrorMsg); + nothrow @nogc SQLRETURN SQLGetStmtAttrA(SQLHSTMT hstmt, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue); + nothrow @nogc SQLRETURN SQLGetTypeInfoA(SQLHSTMT StatementHandle, SQLSMALLINT DataType); + nothrow @nogc SQLRETURN SQLPrepareA(SQLHSTMT hstmt, SQLCHAR* szSqlStr, SQLINTEGER cbSqlStr); + nothrow @nogc SQLRETURN SQLSetConnectAttrA(SQLHDBC hdbc, SQLINTEGER fAttribute, SQLPOINTER rgbValue, SQLINTEGER cbValue); + nothrow @nogc SQLRETURN SQLSetCursorNameA(SQLHSTMT hstmt, SQLCHAR* szCursor, SQLSMALLINT cbCursor); + nothrow @nogc SQLRETURN SQLColumnsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + nothrow @nogc SQLRETURN SQLGetConnectOptionA(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLPOINTER pvParam); + nothrow @nogc SQLRETURN SQLGetInfoA(SQLHDBC hdbc, SQLUSMALLINT fInfoType, SQLPOINTER rgbInfoValue, SQLSMALLINT cbInfoValueMax, SQLSMALLINT* pcbInfoValue); + nothrow @nogc SQLRETURN SQLGetStmtOptionA(SQLHSTMT hstmt, SQLUSMALLINT fOption, SQLPOINTER pvParam); + nothrow @nogc SQLRETURN SQLSetConnectOptionA(SQLHDBC hdbc, SQLUSMALLINT fOption, SQLULEN vParam); + nothrow @nogc SQLRETURN SQLSetStmtOptionA(SQLHSTMT hstmt, SQLUSMALLINT fOption, SQLULEN vParam); + nothrow @nogc SQLRETURN SQLSpecialColumnsA(SQLHSTMT hstmt, SQLUSMALLINT fColType, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLUSMALLINT fScope, SQLUSMALLINT fNullable); + nothrow @nogc SQLRETURN SQLStatisticsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLUSMALLINT fUnique, SQLUSMALLINT fAccuracy); + nothrow @nogc SQLRETURN SQLTablesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLCHAR* szTableType, SQLSMALLINT cbTableType); + nothrow @nogc SQLRETURN SQLDataSourcesA(SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR* szDSN, SQLSMALLINT cbDSNMax, SQLSMALLINT* pcbDSN, SQLCHAR* szDescription, SQLSMALLINT cbDescriptionMax, SQLSMALLINT* pcbDescription); + nothrow @nogc SQLRETURN SQLDriverConnectA(SQLHDBC hdbc, SQLHWND hwnd, SQLCHAR* szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT* pcbConnStrOut, SQLUSMALLINT fDriverCompletion); + nothrow @nogc SQLRETURN SQLBrowseConnectA(SQLHDBC hdbc, SQLCHAR* szConnStrIn, SQLSMALLINT cbConnStrIn, SQLCHAR* szConnStrOut, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT* pcbConnStrOut); + nothrow @nogc SQLRETURN SQLColumnPrivilegesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + nothrow @nogc SQLRETURN SQLDescribeParamA(SQLHSTMT hstmt, SQLUSMALLINT ipar, SQLSMALLINT* pfSqlType, SQLUINTEGER* pcbParamDef, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable); + nothrow @nogc SQLRETURN SQLForeignKeysA(SQLHSTMT hstmt, SQLCHAR* szPkCatalogName, SQLSMALLINT cbPkCatalogName, SQLCHAR* szPkSchemaName, SQLSMALLINT cbPkSchemaName, SQLCHAR* szPkTableName, SQLSMALLINT cbPkTableName, SQLCHAR* szFkCatalogName, SQLSMALLINT cbFkCatalogName, SQLCHAR* szFkSchemaName, SQLSMALLINT cbFkSchemaName, SQLCHAR* szFkTableName, SQLSMALLINT cbFkTableName); + nothrow @nogc SQLRETURN SQLNativeSqlA(SQLHDBC hdbc, SQLCHAR* szSqlStrIn, SQLINTEGER cbSqlStrIn, SQLCHAR* szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER* pcbSqlStr); + nothrow @nogc SQLRETURN SQLPrimaryKeysA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName); + nothrow @nogc SQLRETURN SQLProcedureColumnsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szProcName, SQLSMALLINT cbProcName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + nothrow @nogc SQLRETURN SQLProceduresA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szProcName, SQLSMALLINT cbProcName); + nothrow @nogc SQLRETURN SQLTablePrivilegesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTableName, SQLSMALLINT cbTableName); + nothrow @nogc SQLRETURN SQLDriversA(SQLHENV henv, SQLUSMALLINT fDirection, SQLCHAR* szDriverDesc, SQLSMALLINT cbDriverDescMax, SQLSMALLINT* pcbDriverDesc, SQLCHAR* szDriverAttributes, SQLSMALLINT cbDrvrAttrMax, SQLSMALLINT* pcbDrvrAttr); + nothrow @nogc SQLRETURN SQLStructuredTypesA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTypeName, SQLSMALLINT cbTypeName); + nothrow @nogc SQLRETURN SQLStructuredTypeColumnsA(SQLHSTMT hstmt, SQLCHAR* szCatalogName, SQLSMALLINT cbCatalogName, SQLCHAR* szSchemaName, SQLSMALLINT cbSchemaName, SQLCHAR* szTypeName, SQLSMALLINT cbTypeName, SQLCHAR* szColumnName, SQLSMALLINT cbColumnName); + enum SQLINTEGER ODBCVER = 1024; + enum SQLINTEGER SQL_MAX_NUMERIC_LEN = 16; + auto SQL_NULL_DATA()() + { + return -1; + } + auto SQL_DATA_AT_EXEC()() + { + return -2; + } + enum SQLINTEGER SQL_SUCCESS = 0; + enum SQLINTEGER SQL_SUCCESS_WITH_INFO = 1; + enum SQLINTEGER SQL_NO_DATA = 100; + enum SQLINTEGER SQL_PARAM_DATA_AVAILABLE = 101; + auto SQL_ERROR()() + { + return -1; + } + auto SQL_INVALID_HANDLE()() + { + return -2; + } + enum SQLINTEGER SQL_STILL_EXECUTING = 2; + enum SQLINTEGER SQL_NEED_DATA = 99; + auto SQL_SUCCEEDED(__MP1)(__MP1 rc) + { + return (rc & ~1) == 0; + } + auto SQL_NTS()() + { + return -3; + } + auto SQL_NTSL()() + { + return -3; + } + enum SQLINTEGER SQL_MAX_MESSAGE_LENGTH = 512; + enum SQLINTEGER SQL_DATE_LEN = 10; + enum SQLINTEGER SQL_TIME_LEN = 8; + enum SQLINTEGER SQL_TIMESTAMP_LEN = 19; + enum SQLINTEGER SQL_HANDLE_ENV = 1; + enum SQLINTEGER SQL_HANDLE_DBC = 2; + enum SQLINTEGER SQL_HANDLE_STMT = 3; + enum SQLINTEGER SQL_HANDLE_DESC = 4; + enum SQLINTEGER SQL_ATTR_OUTPUT_NTS = 10001; + enum SQLINTEGER SQL_ATTR_AUTO_IPD = 10001; + enum SQLINTEGER SQL_ATTR_METADATA_ID = 10014; + enum SQLINTEGER SQL_ATTR_APP_ROW_DESC = 10010; + enum SQLINTEGER SQL_ATTR_APP_PARAM_DESC = 10011; + enum SQLINTEGER SQL_ATTR_IMP_ROW_DESC = 10012; + enum SQLINTEGER SQL_ATTR_IMP_PARAM_DESC = 10013; + auto SQL_ATTR_CURSOR_SCROLLABLE()() + { + return -1; + } + auto SQL_ATTR_CURSOR_SENSITIVITY()() + { + return -2; + } + enum SQLINTEGER SQL_NONSCROLLABLE = 0; + enum SQLINTEGER SQL_SCROLLABLE = 1; + enum SQLINTEGER SQL_DESC_COUNT = 1001; + enum SQLINTEGER SQL_DESC_TYPE = 1002; + enum SQLINTEGER SQL_DESC_LENGTH = 1003; + enum SQLINTEGER SQL_DESC_OCTET_LENGTH_PTR = 1004; + enum SQLINTEGER SQL_DESC_PRECISION = 1005; + enum SQLINTEGER SQL_DESC_SCALE = 1006; + enum SQLINTEGER SQL_DESC_DATETIME_INTERVAL_CODE = 1007; + enum SQLINTEGER SQL_DESC_NULLABLE = 1008; + enum SQLINTEGER SQL_DESC_INDICATOR_PTR = 1009; + enum SQLINTEGER SQL_DESC_DATA_PTR = 1010; + enum SQLINTEGER SQL_DESC_NAME = 1011; + enum SQLINTEGER SQL_DESC_UNNAMED = 1012; + enum SQLINTEGER SQL_DESC_OCTET_LENGTH = 1013; + enum SQLINTEGER SQL_DESC_ALLOC_TYPE = 1099; + enum SQLINTEGER SQL_DESC_CHARACTER_SET_CATALOG = 1018; + enum SQLINTEGER SQL_DESC_CHARACTER_SET_SCHEMA = 1019; + enum SQLINTEGER SQL_DESC_CHARACTER_SET_NAME = 1020; + enum SQLINTEGER SQL_DESC_COLLATION_CATALOG = 1015; + enum SQLINTEGER SQL_DESC_COLLATION_SCHEMA = 1016; + enum SQLINTEGER SQL_DESC_COLLATION_NAME = 1017; + enum SQLINTEGER SQL_DESC_USER_DEFINED_TYPE_CATALOG = 1026; + enum SQLINTEGER SQL_DESC_USER_DEFINED_TYPE_SCHEMA = 1027; + enum SQLINTEGER SQL_DESC_USER_DEFINED_TYPE_NAME = 1028; + enum SQLINTEGER SQL_DIAG_RETURNCODE = 1; + enum SQLINTEGER SQL_DIAG_NUMBER = 2; + enum SQLINTEGER SQL_DIAG_ROW_COUNT = 3; + enum SQLINTEGER SQL_DIAG_SQLSTATE = 4; + enum SQLINTEGER SQL_DIAG_NATIVE = 5; + enum SQLINTEGER SQL_DIAG_MESSAGE_TEXT = 6; + enum SQLINTEGER SQL_DIAG_DYNAMIC_FUNCTION = 7; + enum SQLINTEGER SQL_DIAG_CLASS_ORIGIN = 8; + enum SQLINTEGER SQL_DIAG_SUBCLASS_ORIGIN = 9; + enum SQLINTEGER SQL_DIAG_CONNECTION_NAME = 10; + enum SQLINTEGER SQL_DIAG_SERVER_NAME = 11; + enum SQLINTEGER SQL_DIAG_DYNAMIC_FUNCTION_CODE = 12; + enum SQLINTEGER SQL_DIAG_ALTER_DOMAIN = 3; + enum SQLINTEGER SQL_DIAG_ALTER_TABLE = 4; + enum SQLINTEGER SQL_DIAG_CALL = 7; + enum SQLINTEGER SQL_DIAG_CREATE_ASSERTION = 6; + enum SQLINTEGER SQL_DIAG_CREATE_CHARACTER_SET = 8; + enum SQLINTEGER SQL_DIAG_CREATE_COLLATION = 10; + enum SQLINTEGER SQL_DIAG_CREATE_DOMAIN = 23; + auto SQL_DIAG_CREATE_INDEX()() + { + return -1; + } + enum SQLINTEGER SQL_DIAG_CREATE_SCHEMA = 64; + enum SQLINTEGER SQL_DIAG_CREATE_TABLE = 77; + enum SQLINTEGER SQL_DIAG_CREATE_TRANSLATION = 79; + enum SQLINTEGER SQL_DIAG_CREATE_VIEW = 84; + enum SQLINTEGER SQL_DIAG_DELETE_WHERE = 19; + enum SQLINTEGER SQL_DIAG_DROP_ASSERTION = 24; + enum SQLINTEGER SQL_DIAG_DROP_CHARACTER_SET = 25; + enum SQLINTEGER SQL_DIAG_DROP_COLLATION = 26; + enum SQLINTEGER SQL_DIAG_DROP_DOMAIN = 27; + auto SQL_DIAG_DROP_INDEX()() + { + return -2; + } + enum SQLINTEGER SQL_DIAG_DROP_SCHEMA = 31; + enum SQLINTEGER SQL_DIAG_DROP_TABLE = 32; + enum SQLINTEGER SQL_DIAG_DROP_TRANSLATION = 33; + enum SQLINTEGER SQL_DIAG_DROP_VIEW = 36; + enum SQLINTEGER SQL_DIAG_DYNAMIC_DELETE_CURSOR = 38; + enum SQLINTEGER SQL_DIAG_DYNAMIC_UPDATE_CURSOR = 81; + enum SQLINTEGER SQL_DIAG_GRANT = 48; + enum SQLINTEGER SQL_DIAG_INSERT = 50; + enum SQLINTEGER SQL_DIAG_REVOKE = 59; + enum SQLINTEGER SQL_DIAG_SELECT_CURSOR = 85; + enum SQLINTEGER SQL_DIAG_UNKNOWN_STATEMENT = 0; + enum SQLINTEGER SQL_DIAG_UPDATE_WHERE = 82; + enum SQLINTEGER SQL_UNKNOWN_TYPE = 0; + enum SQLINTEGER SQL_CHAR = 1; + enum SQLINTEGER SQL_NUMERIC = 2; + enum SQLINTEGER SQL_DECIMAL = 3; + enum SQLINTEGER SQL_INTEGER = 4; + enum SQLINTEGER SQL_SMALLINT = 5; + enum SQLINTEGER SQL_FLOAT = 6; + enum SQLINTEGER SQL_REAL = 7; + enum SQLINTEGER SQL_DOUBLE = 8; + enum SQLINTEGER SQL_DATETIME = 9; + enum SQLINTEGER SQL_VARCHAR = 12; + enum SQLINTEGER SQL_UDT = 17; + enum SQLINTEGER SQL_ROW = 19; + enum SQLINTEGER SQL_ARRAY = 50; + enum SQLINTEGER SQL_MULTISET = 55; + enum SQLINTEGER SQL_TYPE_DATE = 91; + enum SQLINTEGER SQL_TYPE_TIME = 92; + enum SQLINTEGER SQL_TYPE_TIMESTAMP = 93; + enum SQLINTEGER SQL_TYPE_TIME_WITH_TIMEZONE = 94; + enum SQLINTEGER SQL_TYPE_TIMESTAMP_WITH_TIMEZONE = 95; + enum SQLINTEGER SQL_UNSPECIFIED = 0; + enum SQLINTEGER SQL_INSENSITIVE = 1; + enum SQLINTEGER SQL_SENSITIVE = 2; + enum SQLINTEGER SQL_ALL_TYPES = 0; + enum SQLINTEGER SQL_DEFAULT = 99; + auto SQL_ARD_TYPE()() + { + return -99; + } + auto SQL_APD_TYPE()() + { + return -100; + } + enum SQLINTEGER SQL_CODE_DATE = 1; + enum SQLINTEGER SQL_CODE_TIME = 2; + enum SQLINTEGER SQL_CODE_TIMESTAMP = 3; + enum SQLINTEGER SQL_CODE_TIME_WITH_TIMEZONE = 4; + enum SQLINTEGER SQL_CODE_TIMESTAMP_WITH_TIMEZONE = 5; + enum SQLINTEGER SQL_FALSE = 0; + enum SQLINTEGER SQL_TRUE = 1; + enum SQLINTEGER SQL_NO_NULLS = 0; + enum SQLINTEGER SQL_NULLABLE = 1; + enum SQLINTEGER SQL_NULLABLE_UNKNOWN = 2; + enum SQLINTEGER SQL_PRED_NONE = 0; + enum SQLINTEGER SQL_PRED_CHAR = 1; + enum SQLINTEGER SQL_PRED_BASIC = 2; + enum SQLINTEGER SQL_NAMED = 0; + enum SQLINTEGER SQL_UNNAMED = 1; + enum SQLINTEGER SQL_DESC_ALLOC_AUTO = 1; + enum SQLINTEGER SQL_DESC_ALLOC_USER = 2; + enum SQLINTEGER SQL_CLOSE = 0; + enum SQLINTEGER SQL_DROP = 1; + enum SQLINTEGER SQL_UNBIND = 2; + enum SQLINTEGER SQL_RESET_PARAMS = 3; + enum SQLINTEGER SQL_FETCH_NEXT = 1; + enum SQLINTEGER SQL_FETCH_FIRST = 2; + enum SQLINTEGER SQL_FETCH_LAST = 3; + enum SQLINTEGER SQL_FETCH_PRIOR = 4; + enum SQLINTEGER SQL_FETCH_ABSOLUTE = 5; + enum SQLINTEGER SQL_FETCH_RELATIVE = 6; + enum SQLINTEGER SQL_COMMIT = 0; + enum SQLINTEGER SQL_ROLLBACK = 1; + enum SQLINTEGER SQL_NULL_HENV = 0; + enum SQLINTEGER SQL_NULL_HDBC = 0; + enum SQLINTEGER SQL_NULL_HSTMT = 0; + enum SQLINTEGER SQL_NULL_HDESC = 0; + enum SQLINTEGER SQL_NULL_HANDLE = 0; + enum SQLINTEGER SQL_SCOPE_CURROW = 0; + enum SQLINTEGER SQL_SCOPE_TRANSACTION = 1; + enum SQLINTEGER SQL_SCOPE_SESSION = 2; + enum SQLINTEGER SQL_PC_UNKNOWN = 0; + enum SQLINTEGER SQL_PC_NON_PSEUDO = 1; + enum SQLINTEGER SQL_PC_PSEUDO = 2; + enum SQLINTEGER SQL_ROW_IDENTIFIER = 1; + enum SQLINTEGER SQL_INDEX_UNIQUE = 0; + enum SQLINTEGER SQL_INDEX_ALL = 1; + enum SQLINTEGER SQL_INDEX_CLUSTERED = 1; + enum SQLINTEGER SQL_INDEX_HASHED = 2; + enum SQLINTEGER SQL_INDEX_OTHER = 3; + enum SQLINTEGER SQL_MAX_DRIVER_CONNECTIONS = 0; + enum SQLINTEGER SQL_MAX_CONCURRENT_ACTIVITIES = 1; + enum SQLINTEGER SQL_DATA_SOURCE_NAME = 2; + enum SQLINTEGER SQL_FETCH_DIRECTION = 8; + enum SQLINTEGER SQL_SERVER_NAME = 13; + enum SQLINTEGER SQL_SEARCH_PATTERN_ESCAPE = 14; + enum SQLINTEGER SQL_DBMS_NAME = 17; + enum SQLINTEGER SQL_DBMS_VER = 18; + enum SQLINTEGER SQL_ACCESSIBLE_TABLES = 19; + enum SQLINTEGER SQL_ACCESSIBLE_PROCEDURES = 20; + enum SQLINTEGER SQL_CURSOR_COMMIT_BEHAVIOR = 23; + enum SQLINTEGER SQL_DATA_SOURCE_READ_ONLY = 25; + enum SQLINTEGER SQL_DEFAULT_TXN_ISOLATION = 26; + enum SQLINTEGER SQL_IDENTIFIER_CASE = 28; + enum SQLINTEGER SQL_IDENTIFIER_QUOTE_CHAR = 29; + enum SQLINTEGER SQL_MAX_COLUMN_NAME_LEN = 30; + enum SQLINTEGER SQL_MAX_CURSOR_NAME_LEN = 31; + enum SQLINTEGER SQL_MAX_SCHEMA_NAME_LEN = 32; + enum SQLINTEGER SQL_MAX_CATALOG_NAME_LEN = 34; + enum SQLINTEGER SQL_MAX_TABLE_NAME_LEN = 35; + enum SQLINTEGER SQL_SCROLL_CONCURRENCY = 43; + enum SQLINTEGER SQL_TXN_CAPABLE = 46; + enum SQLINTEGER SQL_USER_NAME = 47; + enum SQLINTEGER SQL_TXN_ISOLATION_OPTION = 72; + enum SQLINTEGER SQL_INTEGRITY = 73; + enum SQLINTEGER SQL_GETDATA_EXTENSIONS = 81; + enum SQLINTEGER SQL_NULL_COLLATION = 85; + enum SQLINTEGER SQL_ALTER_TABLE = 86; + enum SQLINTEGER SQL_ORDER_BY_COLUMNS_IN_SELECT = 90; + enum SQLINTEGER SQL_SPECIAL_CHARACTERS = 94; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_GROUP_BY = 97; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_INDEX = 98; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_ORDER_BY = 99; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_SELECT = 100; + enum SQLINTEGER SQL_MAX_COLUMNS_IN_TABLE = 101; + enum SQLINTEGER SQL_MAX_INDEX_SIZE = 102; + enum SQLINTEGER SQL_MAX_ROW_SIZE = 104; + enum SQLINTEGER SQL_MAX_STATEMENT_LEN = 105; + enum SQLINTEGER SQL_MAX_TABLES_IN_SELECT = 106; + enum SQLINTEGER SQL_MAX_USER_NAME_LEN = 107; + enum SQLINTEGER SQL_OJ_CAPABILITIES = 115; + enum SQLINTEGER SQL_XOPEN_CLI_YEAR = 10000; + enum SQLINTEGER SQL_CURSOR_SENSITIVITY = 10001; + enum SQLINTEGER SQL_DESCRIBE_PARAMETER = 10002; + enum SQLINTEGER SQL_CATALOG_NAME = 10003; + enum SQLINTEGER SQL_COLLATION_SEQ = 10004; + enum SQLINTEGER SQL_MAX_IDENTIFIER_LEN = 10005; + enum SQLINTEGER SQL_AT_ADD_COLUMN = 1; + enum SQLINTEGER SQL_AT_DROP_COLUMN = 2; + enum SQLINTEGER SQL_AT_ADD_CONSTRAINT = 8; + enum SQLINTEGER SQL_AM_NONE = 0; + enum SQLINTEGER SQL_AM_CONNECTION = 1; + enum SQLINTEGER SQL_AM_STATEMENT = 2; + enum SQLINTEGER SQL_CB_DELETE = 0; + enum SQLINTEGER SQL_CB_CLOSE = 1; + enum SQLINTEGER SQL_CB_PRESERVE = 2; + enum SQLINTEGER SQL_FD_FETCH_NEXT = 1; + enum SQLINTEGER SQL_FD_FETCH_FIRST = 2; + enum SQLINTEGER SQL_FD_FETCH_LAST = 4; + enum SQLINTEGER SQL_FD_FETCH_PRIOR = 8; + enum SQLINTEGER SQL_FD_FETCH_ABSOLUTE = 16; + enum SQLINTEGER SQL_FD_FETCH_RELATIVE = 32; + enum SQLINTEGER SQL_GD_ANY_COLUMN = 1; + enum SQLINTEGER SQL_GD_ANY_ORDER = 2; + enum SQLINTEGER SQL_IC_UPPER = 1; + enum SQLINTEGER SQL_IC_LOWER = 2; + enum SQLINTEGER SQL_IC_SENSITIVE = 3; + enum SQLINTEGER SQL_IC_MIXED = 4; + enum SQLINTEGER SQL_OJ_LEFT = 1; + enum SQLINTEGER SQL_OJ_RIGHT = 2; + enum SQLINTEGER SQL_OJ_FULL = 4; + enum SQLINTEGER SQL_OJ_NESTED = 8; + enum SQLINTEGER SQL_OJ_NOT_ORDERED = 16; + enum SQLINTEGER SQL_OJ_INNER = 32; + enum SQLINTEGER SQL_OJ_ALL_COMPARISON_OPS = 64; + enum SQLINTEGER SQL_SCCO_READ_ONLY = 1; + enum SQLINTEGER SQL_SCCO_LOCK = 2; + enum SQLINTEGER SQL_SCCO_OPT_ROWVER = 4; + enum SQLINTEGER SQL_SCCO_OPT_VALUES = 8; + enum SQLINTEGER SQL_TC_NONE = 0; + enum SQLINTEGER SQL_TC_DML = 1; + enum SQLINTEGER SQL_TC_ALL = 2; + enum SQLINTEGER SQL_TC_DDL_COMMIT = 3; + enum SQLINTEGER SQL_TC_DDL_IGNORE = 4; + enum SQLINTEGER SQL_TXN_READ_UNCOMMITTED = 1; + enum SQLINTEGER SQL_TXN_READ_COMMITTED = 2; + enum SQLINTEGER SQL_TXN_REPEATABLE_READ = 4; + enum SQLINTEGER SQL_TXN_SERIALIZABLE = 8; + enum SQLINTEGER SQL_NC_HIGH = 0; + enum SQLINTEGER SQL_NC_LOW = 1; + enum SQLINTEGER SQL_SPEC_MAJOR = 4; + enum SQLINTEGER SQL_SPEC_MINOR = 0; + enum SQL_SPEC_STRING = "04.00"; + enum SQLINTEGER SQL_SQLSTATE_SIZE = 5; + enum SQLINTEGER SQL_MAX_DSN_LENGTH = 32; + enum SQLINTEGER SQL_MAX_OPTION_STRING_LENGTH = 256; + enum SQLINTEGER SQL_DATA_AVAILABLE = 102; + enum SQLINTEGER SQL_METADATA_CHANGED = 103; + enum SQLINTEGER SQL_MORE_DATA = 104; + enum SQLINTEGER SQL_HANDLE_SENV = 5; + enum SQLINTEGER SQL_ATTR_ODBC_VERSION = 200; + enum SQLINTEGER SQL_ATTR_CONNECTION_POOLING = 201; + enum SQLINTEGER SQL_ATTR_CP_MATCH = 202; + enum SQLINTEGER SQL_ATTR_APPLICATION_KEY = 203; + enum SQLUINTEGER SQL_CP_OFF = 0u; + enum SQLUINTEGER SQL_CP_ONE_PER_DRIVER = 1u; + enum SQLUINTEGER SQL_CP_ONE_PER_HENV = 2u; + enum SQLUINTEGER SQL_CP_DRIVER_AWARE = 3u; + enum SQLUINTEGER SQL_CP_STRICT_MATCH = 0u; + enum SQLUINTEGER SQL_CP_RELAXED_MATCH = 1u; + enum SQLUINTEGER SQL_OV_ODBC2 = 2u; + enum SQLUINTEGER SQL_OV_ODBC3 = 3u; + enum SQLUINTEGER SQL_OV_ODBC3_80 = 380u; + enum SQLUINTEGER SQL_OV_ODBC4 = 400u; + enum SQLINTEGER SQL_ACCESS_MODE = 101; + enum SQLINTEGER SQL_AUTOCOMMIT = 102; + enum SQLINTEGER SQL_LOGIN_TIMEOUT = 103; + enum SQLINTEGER SQL_OPT_TRACE = 104; + enum SQLINTEGER SQL_OPT_TRACEFILE = 105; + enum SQLINTEGER SQL_TRANSLATE_DLL = 106; + enum SQLINTEGER SQL_TRANSLATE_OPTION = 107; + enum SQLINTEGER SQL_TXN_ISOLATION = 108; + enum SQLINTEGER SQL_CURRENT_QUALIFIER = 109; + enum SQLINTEGER SQL_ODBC_CURSORS = 110; + enum SQLINTEGER SQL_QUIET_MODE = 111; + enum SQLINTEGER SQL_PACKET_SIZE = 112; + enum SQLINTEGER SQL_ATTR_CONNECTION_TIMEOUT = 113; + enum SQLINTEGER SQL_ATTR_DISCONNECT_BEHAVIOR = 114; + enum SQLINTEGER SQL_ATTR_ENLIST_IN_DTC = 1207; + enum SQLINTEGER SQL_ATTR_ENLIST_IN_XA = 1208; + enum SQLINTEGER SQL_ATTR_CONNECTION_DEAD = 1209; + enum SQLINTEGER SQL_ATTR_ANSI_APP = 115; + enum SQLINTEGER SQL_ATTR_RESET_CONNECTION = 116; + enum SQLINTEGER SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE = 117; + enum SQLINTEGER SQL_ATTR_ASYNC_DBC_EVENT = 119; + enum SQLINTEGER SQL_ATTR_CREDENTIALS = 122; + enum SQLINTEGER SQL_ATTR_REFRESH_CONNECTION = 123; + enum SQLUINTEGER SQL_MODE_READ_WRITE = 0u; + enum SQLUINTEGER SQL_MODE_READ_ONLY = 1u; + enum SQLUINTEGER SQL_AUTOCOMMIT_OFF = 0u; + enum SQLUINTEGER SQL_AUTOCOMMIT_ON = 1u; + enum SQLUINTEGER SQL_LOGIN_TIMEOUT_DEFAULT = 15u; + enum SQLUINTEGER SQL_OPT_TRACE_OFF = 0u; + enum SQLUINTEGER SQL_OPT_TRACE_ON = 1u; + enum SQL_OPT_TRACE_FILE_DEFAULT = "\\SQL.LOG"; + enum SQLUINTEGER SQL_CUR_USE_IF_NEEDED = 0u; + enum SQLUINTEGER SQL_CUR_USE_ODBC = 1u; + enum SQLUINTEGER SQL_CUR_USE_DRIVER = 2u; + enum SQLUINTEGER SQL_DB_RETURN_TO_POOL = 0u; + enum SQLUINTEGER SQL_DB_DISCONNECT = 1u; + enum SQLINTEGER SQL_DTC_DONE = 0; + enum SQLINTEGER SQL_CD_TRUE = 1; + enum SQLINTEGER SQL_CD_FALSE = 0; + enum SQLINTEGER SQL_AA_TRUE = 1; + enum SQLINTEGER SQL_AA_FALSE = 0; + enum SQLUINTEGER SQL_RESET_CONNECTION_YES = 1u; + enum SQLUINTEGER SQL_ASYNC_DBC_ENABLE_ON = 1u; + enum SQLUINTEGER SQL_ASYNC_DBC_ENABLE_OFF = 0u; + enum SQLINTEGER SQL_REFRESH_NOW = -1; + enum SQLINTEGER SQL_REFRESH_AUTO = 0; + enum SQLINTEGER SQL_REFRESH_MANUAL = 1; + enum SQLINTEGER SQL_QUERY_TIMEOUT = 0; + enum SQLINTEGER SQL_MAX_ROWS = 1; + enum SQLINTEGER SQL_NOSCAN = 2; + enum SQLINTEGER SQL_MAX_LENGTH = 3; + enum SQLINTEGER SQL_ASYNC_ENABLE = 4; + enum SQLINTEGER SQL_BIND_TYPE = 5; + enum SQLINTEGER SQL_CURSOR_TYPE = 6; + enum SQLINTEGER SQL_CONCURRENCY = 7; + enum SQLINTEGER SQL_KEYSET_SIZE = 8; + enum SQLINTEGER SQL_ROWSET_SIZE = 9; + enum SQLINTEGER SQL_SIMULATE_CURSOR = 10; + enum SQLINTEGER SQL_RETRIEVE_DATA = 11; + enum SQLINTEGER SQL_USE_BOOKMARKS = 12; + enum SQLINTEGER SQL_GET_BOOKMARK = 13; + enum SQLINTEGER SQL_ROW_NUMBER = 14; + enum SQLINTEGER SQL_ATTR_ENABLE_AUTO_IPD = 15; + enum SQLINTEGER SQL_ATTR_FETCH_BOOKMARK_PTR = 16; + enum SQLINTEGER SQL_ATTR_PARAM_BIND_OFFSET_PTR = 17; + enum SQLINTEGER SQL_ATTR_PARAM_BIND_TYPE = 18; + enum SQLINTEGER SQL_ATTR_PARAM_OPERATION_PTR = 19; + enum SQLINTEGER SQL_ATTR_PARAM_STATUS_PTR = 20; + enum SQLINTEGER SQL_ATTR_PARAMS_PROCESSED_PTR = 21; + enum SQLINTEGER SQL_ATTR_PARAMSET_SIZE = 22; + enum SQLINTEGER SQL_ATTR_ROW_BIND_OFFSET_PTR = 23; + enum SQLINTEGER SQL_ATTR_ROW_OPERATION_PTR = 24; + enum SQLINTEGER SQL_ATTR_ROW_STATUS_PTR = 25; + enum SQLINTEGER SQL_ATTR_ROWS_FETCHED_PTR = 26; + enum SQLINTEGER SQL_ATTR_ROW_ARRAY_SIZE = 27; + enum SQLINTEGER SQL_ATTR_ASYNC_STMT_EVENT = 29; + enum SQLINTEGER SQL_ATTR_SAMPLE_SIZE = 30; + enum SQLINTEGER SQL_ATTR_DYNAMIC_COLUMNS = 31; + enum SQLINTEGER SQL_ATTR_TYPE_EXCEPTION_BEHAVIOR = 32; + enum SQLINTEGER SQL_ATTR_LENGTH_EXCEPTION_BEHAVIOR = 33; + enum SQLINTEGER SQL_TE_ERROR = 1; + enum SQLINTEGER SQL_TE_CONTINUE = 2; + enum SQLINTEGER SQL_TE_REPORT = 3; + enum SQLINTEGER SQL_LE_CONTINUE = 1; + enum SQLINTEGER SQL_LE_REPORT = 2; + auto SQL_IS_POINTER()() + { + return -4; + } + auto SQL_IS_UINTEGER()() + { + return -5; + } + auto SQL_IS_INTEGER()() + { + return -6; + } + auto SQL_IS_USMALLINT()() + { + return -7; + } + auto SQL_IS_SMALLINT()() + { + return -8; + } + enum SQLUINTEGER SQL_PARAM_BIND_BY_COLUMN = 0u; + enum SQLUINTEGER SQL_QUERY_TIMEOUT_DEFAULT = 0u; + enum SQLUINTEGER SQL_MAX_ROWS_DEFAULT = 0u; + enum SQLUINTEGER SQL_NOSCAN_OFF = 0u; + enum SQLUINTEGER SQL_NOSCAN_ON = 1u; + enum SQLUINTEGER SQL_MAX_LENGTH_DEFAULT = 0u; + enum SQLUINTEGER SQL_ASYNC_ENABLE_OFF = 0u; + enum SQLUINTEGER SQL_ASYNC_ENABLE_ON = 1u; + enum SQLUINTEGER SQL_BIND_BY_COLUMN = 0u; + enum SQLINTEGER SQL_CONCUR_READ_ONLY = 1; + enum SQLINTEGER SQL_CONCUR_LOCK = 2; + enum SQLINTEGER SQL_CONCUR_ROWVER = 3; + enum SQLINTEGER SQL_CONCUR_VALUES = 4; + enum SQLUINTEGER SQL_CURSOR_FORWARD_ONLY = 0u; + enum SQLUINTEGER SQL_CURSOR_KEYSET_DRIVEN = 1u; + enum SQLUINTEGER SQL_CURSOR_DYNAMIC = 2u; + enum SQLUINTEGER SQL_CURSOR_STATIC = 3u; + enum SQLUINTEGER SQL_ROWSET_SIZE_DEFAULT = 1u; + enum SQLUINTEGER SQL_KEYSET_SIZE_DEFAULT = 0u; + enum SQLUINTEGER SQL_SC_NON_UNIQUE = 0u; + enum SQLUINTEGER SQL_SC_TRY_UNIQUE = 1u; + enum SQLUINTEGER SQL_SC_UNIQUE = 2u; + enum SQLUINTEGER SQL_RD_OFF = 0u; + enum SQLUINTEGER SQL_RD_ON = 1u; + enum SQLUINTEGER SQL_UB_OFF = 0u; + enum SQLUINTEGER SQL_UB_ON = 1u; + enum SQLUINTEGER SQL_UB_VARIABLE = 2u; + enum SQLINTEGER SQL_DESC_ARRAY_SIZE = 20; + enum SQLINTEGER SQL_DESC_ARRAY_STATUS_PTR = 21; + enum SQLINTEGER SQL_DESC_BASE_COLUMN_NAME = 22; + enum SQLINTEGER SQL_DESC_BASE_TABLE_NAME = 23; + enum SQLINTEGER SQL_DESC_BIND_OFFSET_PTR = 24; + enum SQLINTEGER SQL_DESC_BIND_TYPE = 25; + enum SQLINTEGER SQL_DESC_DATETIME_INTERVAL_PRECISION = 26; + enum SQLINTEGER SQL_DESC_LITERAL_PREFIX = 27; + enum SQLINTEGER SQL_DESC_LITERAL_SUFFIX = 28; + enum SQLINTEGER SQL_DESC_LOCAL_TYPE_NAME = 29; + enum SQLINTEGER SQL_DESC_MAXIMUM_SCALE = 30; + enum SQLINTEGER SQL_DESC_MINIMUM_SCALE = 31; + enum SQLINTEGER SQL_DESC_NUM_PREC_RADIX = 32; + enum SQLINTEGER SQL_DESC_PARAMETER_TYPE = 33; + enum SQLINTEGER SQL_DESC_ROWS_PROCESSED_PTR = 34; + enum SQLINTEGER SQL_DESC_ROWVER = 35; + enum SQLINTEGER SQL_DESC_MIME_TYPE = 36; + auto SQL_DIAG_CURSOR_ROW_COUNT()() + { + return -1249; + } + auto SQL_DIAG_ROW_NUMBER()() + { + return -1248; + } + auto SQL_DIAG_COLUMN_NUMBER()() + { + return -1247; + } + enum SQLINTEGER SQL_DATE = 9; + enum SQLINTEGER SQL_INTERVAL = 10; + enum SQLINTEGER SQL_TIME = 10; + enum SQLINTEGER SQL_TIMESTAMP = 11; + auto SQL_LONGVARCHAR()() + { + return -1; + } + auto SQL_BINARY()() + { + return -2; + } + auto SQL_VARBINARY()() + { + return -3; + } + auto SQL_LONGVARBINARY()() + { + return -4; + } + auto SQL_BIGINT()() + { + return -5; + } + auto SQL_TINYINT()() + { + return -6; + } + auto SQL_BIT()() + { + return -7; + } + auto SQL_GUID()() + { + return -11; + } + enum SQLINTEGER SQL_CODE_YEAR = 1; + enum SQLINTEGER SQL_CODE_MONTH = 2; + enum SQLINTEGER SQL_CODE_DAY = 3; + enum SQLINTEGER SQL_CODE_HOUR = 4; + enum SQLINTEGER SQL_CODE_MINUTE = 5; + enum SQLINTEGER SQL_CODE_SECOND = 6; + enum SQLINTEGER SQL_CODE_YEAR_TO_MONTH = 7; + enum SQLINTEGER SQL_CODE_DAY_TO_HOUR = 8; + enum SQLINTEGER SQL_CODE_DAY_TO_MINUTE = 9; + enum SQLINTEGER SQL_CODE_DAY_TO_SECOND = 10; + enum SQLINTEGER SQL_CODE_HOUR_TO_MINUTE = 11; + enum SQLINTEGER SQL_CODE_HOUR_TO_SECOND = 12; + enum SQLINTEGER SQL_CODE_MINUTE_TO_SECOND = 13; + auto SQL_INTERVAL_YEAR()() + { + return 100 + SQL_CODE_YEAR; + } + auto SQL_INTERVAL_MONTH()() + { + return 100 + SQL_CODE_MONTH; + } + auto SQL_INTERVAL_DAY()() + { + return 100 + SQL_CODE_DAY; + } + auto SQL_INTERVAL_HOUR()() + { + return 100 + SQL_CODE_HOUR; + } + auto SQL_INTERVAL_MINUTE()() + { + return 100 + SQL_CODE_MINUTE; + } + auto SQL_INTERVAL_SECOND()() + { + return 100 + SQL_CODE_SECOND; + } + auto SQL_INTERVAL_YEAR_TO_MONTH()() + { + return 100 + SQL_CODE_YEAR_TO_MONTH; + } + auto SQL_INTERVAL_DAY_TO_HOUR()() + { + return 100 + SQL_CODE_DAY_TO_HOUR; + } + auto SQL_INTERVAL_DAY_TO_MINUTE()() + { + return 100 + SQL_CODE_DAY_TO_MINUTE; + } + auto SQL_INTERVAL_DAY_TO_SECOND()() + { + return 100 + SQL_CODE_DAY_TO_SECOND; + } + auto SQL_INTERVAL_HOUR_TO_MINUTE()() + { + return 100 + SQL_CODE_HOUR_TO_MINUTE; + } + auto SQL_INTERVAL_HOUR_TO_SECOND()() + { + return 100 + SQL_CODE_HOUR_TO_SECOND; + } + auto SQL_INTERVAL_MINUTE_TO_SECOND()() + { + return 100 + SQL_CODE_MINUTE_TO_SECOND; + } + enum SQLINTEGER SQL_C_DEFAULT = 99; + auto SQL_SIGNED_OFFSET()() + { + return -20; + } + auto SQL_UNSIGNED_OFFSET()() + { + return -22; + } + auto SQL_C_SBIGINT()() + { + return SQL_BIGINT + SQL_SIGNED_OFFSET; + } + auto SQL_C_UBIGINT()() + { + return SQL_BIGINT + SQL_UNSIGNED_OFFSET; + } + auto SQL_C_SLONG()() + { + return SQL_C_LONG + SQL_SIGNED_OFFSET; + } + auto SQL_C_SSHORT()() + { + return SQL_C_SHORT + SQL_SIGNED_OFFSET; + } + auto SQL_C_STINYINT()() + { + return SQL_TINYINT + SQL_SIGNED_OFFSET; + } + auto SQL_C_ULONG()() + { + return SQL_C_LONG + SQL_UNSIGNED_OFFSET; + } + auto SQL_C_USHORT()() + { + return SQL_C_SHORT + SQL_UNSIGNED_OFFSET; + } + auto SQL_C_UTINYINT()() + { + return SQL_TINYINT + SQL_UNSIGNED_OFFSET; + } + enum SQLINTEGER SQL_TYPE_NULL = 0; + enum SQLINTEGER SQL_DRIVER_C_TYPE_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_SQL_TYPE_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_DESC_FIELD_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_DIAG_FIELD_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_INFO_TYPE_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_CONN_ATTR_BASE = 16384; + enum SQLINTEGER SQL_DRIVER_STMT_ATTR_BASE = 16384; + auto SQL_NO_ROW_NUMBER()() + { + return -1; + } + auto SQL_NO_COLUMN_NUMBER()() + { + return -1; + } + auto SQL_ROW_NUMBER_UNKNOWN()() + { + return -2; + } + auto SQL_COLUMN_NUMBER_UNKNOWN()() + { + return -2; + } + auto SQL_DEFAULT_PARAM()() + { + return -5; + } + auto SQL_IGNORE()() + { + return -6; + } + auto SQL_LEN_DATA_AT_EXEC_OFFSET()() + { + return -100; + } + auto SQL_LEN_DATA_AT_EXEC(__MP2)(__MP2 length) + { + return -length + SQL_LEN_DATA_AT_EXEC_OFFSET; + } + auto SQL_LEN_BINARY_ATTR_OFFSET()() + { + return -100; + } + auto SQL_LEN_BINARY_ATTR(__MP3)(__MP3 length) + { + return -length + SQL_LEN_BINARY_ATTR_OFFSET; + } + auto SQL_SETPARAM_VALUE_MAX()() + { + return -1; + } + auto SQL_TYPE_EXCEPTION()() + { + return -20; + } + enum SQLINTEGER SQL_COLUMN_COUNT = 0; + enum SQLINTEGER SQL_COLUMN_NAME = 1; + enum SQLINTEGER SQL_COLUMN_TYPE = 2; + enum SQLINTEGER SQL_COLUMN_LENGTH = 3; + enum SQLINTEGER SQL_COLUMN_PRECISION = 4; + enum SQLINTEGER SQL_COLUMN_SCALE = 5; + enum SQLINTEGER SQL_COLUMN_DISPLAY_SIZE = 6; + enum SQLINTEGER SQL_COLUMN_NULLABLE = 7; + enum SQLINTEGER SQL_COLUMN_UNSIGNED = 8; + enum SQLINTEGER SQL_COLUMN_MONEY = 9; + enum SQLINTEGER SQL_COLUMN_UPDATABLE = 10; + enum SQLINTEGER SQL_COLUMN_AUTO_INCREMENT = 11; + enum SQLINTEGER SQL_COLUMN_CASE_SENSITIVE = 12; + enum SQLINTEGER SQL_COLUMN_SEARCHABLE = 13; + enum SQLINTEGER SQL_COLUMN_TYPE_NAME = 14; + enum SQLINTEGER SQL_COLUMN_TABLE_NAME = 15; + enum SQLINTEGER SQL_COLUMN_OWNER_NAME = 16; + enum SQLINTEGER SQL_COLUMN_QUALIFIER_NAME = 17; + enum SQLINTEGER SQL_COLUMN_LABEL = 18; + enum SQLINTEGER SQL_ATTR_READONLY = 0; + enum SQLINTEGER SQL_ATTR_WRITE = 1; + enum SQLINTEGER SQL_ATTR_READWRITE_UNKNOWN = 2; + enum SQLINTEGER SQL_UNSEARCHABLE = 0; + enum SQLINTEGER SQL_LIKE_ONLY = 1; + enum SQLINTEGER SQL_ALL_EXCEPT_LIKE = 2; + enum SQLINTEGER SQL_SEARCHABLE = 3; + auto SQL_NO_TOTAL()() + { + return -4; + } + enum SQLINTEGER SQL_INFO_FIRST = 0; + enum SQLINTEGER SQL_ACTIVE_CONNECTIONS = 0; + enum SQLINTEGER SQL_ACTIVE_STATEMENTS = 1; + enum SQLINTEGER SQL_DRIVER_HDBC = 3; + enum SQLINTEGER SQL_DRIVER_HENV = 4; + enum SQLINTEGER SQL_DRIVER_HSTMT = 5; + enum SQLINTEGER SQL_DRIVER_NAME = 6; + enum SQLINTEGER SQL_DRIVER_VER = 7; + enum SQLINTEGER SQL_ODBC_API_CONFORMANCE = 9; + enum SQLINTEGER SQL_ODBC_VER = 10; + enum SQLINTEGER SQL_ROW_UPDATES = 11; + enum SQLINTEGER SQL_ODBC_SAG_CLI_CONFORMANCE = 12; + enum SQLINTEGER SQL_ODBC_SQL_CONFORMANCE = 15; + enum SQLINTEGER SQL_PROCEDURES = 21; + enum SQLINTEGER SQL_CONCAT_NULL_BEHAVIOR = 22; + enum SQLINTEGER SQL_CURSOR_ROLLBACK_BEHAVIOR = 24; + enum SQLINTEGER SQL_EXPRESSIONS_IN_ORDERBY = 27; + enum SQLINTEGER SQL_MAX_OWNER_NAME_LEN = 32; + enum SQLINTEGER SQL_MAX_PROCEDURE_NAME_LEN = 33; + enum SQLINTEGER SQL_MAX_QUALIFIER_NAME_LEN = 34; + enum SQLINTEGER SQL_MULT_RESULT_SETS = 36; + enum SQLINTEGER SQL_MULTIPLE_ACTIVE_TXN = 37; + enum SQLINTEGER SQL_OUTER_JOINS = 38; + enum SQLINTEGER SQL_OWNER_TERM = 39; + enum SQLINTEGER SQL_PROCEDURE_TERM = 40; + enum SQLINTEGER SQL_QUALIFIER_NAME_SEPARATOR = 41; + enum SQLINTEGER SQL_QUALIFIER_TERM = 42; + enum SQLINTEGER SQL_SCROLL_OPTIONS = 44; + enum SQLINTEGER SQL_TABLE_TERM = 45; + enum SQLINTEGER SQL_CONVERT_FUNCTIONS = 48; + enum SQLINTEGER SQL_NUMERIC_FUNCTIONS = 49; + enum SQLINTEGER SQL_STRING_FUNCTIONS = 50; + enum SQLINTEGER SQL_SYSTEM_FUNCTIONS = 51; + enum SQLINTEGER SQL_TIMEDATE_FUNCTIONS = 52; + enum SQLINTEGER SQL_CONVERT_BIGINT = 53; + enum SQLINTEGER SQL_CONVERT_BINARY = 54; + enum SQLINTEGER SQL_CONVERT_BIT = 55; + enum SQLINTEGER SQL_CONVERT_CHAR = 56; + enum SQLINTEGER SQL_CONVERT_DATE = 57; + enum SQLINTEGER SQL_CONVERT_DECIMAL = 58; + enum SQLINTEGER SQL_CONVERT_DOUBLE = 59; + enum SQLINTEGER SQL_CONVERT_FLOAT = 60; + enum SQLINTEGER SQL_CONVERT_INTEGER = 61; + enum SQLINTEGER SQL_CONVERT_LONGVARCHAR = 62; + enum SQLINTEGER SQL_CONVERT_NUMERIC = 63; + enum SQLINTEGER SQL_CONVERT_REAL = 64; + enum SQLINTEGER SQL_CONVERT_SMALLINT = 65; + enum SQLINTEGER SQL_CONVERT_TIME = 66; + enum SQLINTEGER SQL_CONVERT_TIMESTAMP = 67; + enum SQLINTEGER SQL_CONVERT_TINYINT = 68; + enum SQLINTEGER SQL_CONVERT_VARBINARY = 69; + enum SQLINTEGER SQL_CONVERT_VARCHAR = 70; + enum SQLINTEGER SQL_CONVERT_LONGVARBINARY = 71; + enum SQLINTEGER SQL_ODBC_SQL_OPT_IEF = 73; + enum SQLINTEGER SQL_CORRELATION_NAME = 74; + enum SQLINTEGER SQL_NON_NULLABLE_COLUMNS = 75; + enum SQLINTEGER SQL_DRIVER_HLIB = 76; + enum SQLINTEGER SQL_DRIVER_ODBC_VER = 77; + enum SQLINTEGER SQL_LOCK_TYPES = 78; + enum SQLINTEGER SQL_POS_OPERATIONS = 79; + enum SQLINTEGER SQL_POSITIONED_STATEMENTS = 80; + enum SQLINTEGER SQL_BOOKMARK_PERSISTENCE = 82; + enum SQLINTEGER SQL_STATIC_SENSITIVITY = 83; + enum SQLINTEGER SQL_FILE_USAGE = 84; + enum SQLINTEGER SQL_COLUMN_ALIAS = 87; + enum SQLINTEGER SQL_GROUP_BY = 88; + enum SQLINTEGER SQL_KEYWORDS = 89; + enum SQLINTEGER SQL_OWNER_USAGE = 91; + enum SQLINTEGER SQL_QUALIFIER_USAGE = 92; + enum SQLINTEGER SQL_QUOTED_IDENTIFIER_CASE = 93; + enum SQLINTEGER SQL_SUBQUERIES = 95; + enum SQLINTEGER SQL_UNION = 96; + enum SQLINTEGER SQL_MAX_ROW_SIZE_INCLUDES_LONG = 103; + enum SQLINTEGER SQL_MAX_CHAR_LITERAL_LEN = 108; + enum SQLINTEGER SQL_TIMEDATE_ADD_INTERVALS = 109; + enum SQLINTEGER SQL_TIMEDATE_DIFF_INTERVALS = 110; + enum SQLINTEGER SQL_NEED_LONG_DATA_LEN = 111; + enum SQLINTEGER SQL_MAX_BINARY_LITERAL_LEN = 112; + enum SQLINTEGER SQL_LIKE_ESCAPE_CLAUSE = 113; + enum SQLINTEGER SQL_QUALIFIER_LOCATION = 114; + enum SQLINTEGER SQL_ACTIVE_ENVIRONMENTS = 116; + enum SQLINTEGER SQL_ALTER_DOMAIN = 117; + enum SQLINTEGER SQL_SQL_CONFORMANCE = 118; + enum SQLINTEGER SQL_DATETIME_LITERALS = 119; + enum SQLINTEGER SQL_ASYNC_MODE = 10021; + enum SQLINTEGER SQL_BATCH_ROW_COUNT = 120; + enum SQLINTEGER SQL_BATCH_SUPPORT = 121; + enum SQLINTEGER SQL_CONVERT_WCHAR = 122; + enum SQLINTEGER SQL_CONVERT_INTERVAL_DAY_TIME = 123; + enum SQLINTEGER SQL_CONVERT_INTERVAL_YEAR_MONTH = 124; + enum SQLINTEGER SQL_CONVERT_WLONGVARCHAR = 125; + enum SQLINTEGER SQL_CONVERT_WVARCHAR = 126; + enum SQLINTEGER SQL_CREATE_ASSERTION = 127; + enum SQLINTEGER SQL_CREATE_CHARACTER_SET = 128; + enum SQLINTEGER SQL_CREATE_COLLATION = 129; + enum SQLINTEGER SQL_CREATE_DOMAIN = 130; + enum SQLINTEGER SQL_CREATE_SCHEMA = 131; + enum SQLINTEGER SQL_CREATE_TABLE = 132; + enum SQLINTEGER SQL_CREATE_TRANSLATION = 133; + enum SQLINTEGER SQL_CREATE_VIEW = 134; + enum SQLINTEGER SQL_DRIVER_HDESC = 135; + enum SQLINTEGER SQL_DROP_ASSERTION = 136; + enum SQLINTEGER SQL_DROP_CHARACTER_SET = 137; + enum SQLINTEGER SQL_DROP_COLLATION = 138; + enum SQLINTEGER SQL_DROP_DOMAIN = 139; + enum SQLINTEGER SQL_DROP_SCHEMA = 140; + enum SQLINTEGER SQL_DROP_TABLE = 141; + enum SQLINTEGER SQL_DROP_TRANSLATION = 142; + enum SQLINTEGER SQL_DROP_VIEW = 143; + enum SQLINTEGER SQL_DYNAMIC_CURSOR_ATTRIBUTES1 = 144; + enum SQLINTEGER SQL_DYNAMIC_CURSOR_ATTRIBUTES2 = 145; + enum SQLINTEGER SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 = 146; + enum SQLINTEGER SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 = 147; + enum SQLINTEGER SQL_INDEX_KEYWORDS = 148; + enum SQLINTEGER SQL_INFO_SCHEMA_VIEWS = 149; + enum SQLINTEGER SQL_KEYSET_CURSOR_ATTRIBUTES1 = 150; + enum SQLINTEGER SQL_KEYSET_CURSOR_ATTRIBUTES2 = 151; + enum SQLINTEGER SQL_MAX_ASYNC_CONCURRENT_STATEMENTS = 10022; + enum SQLINTEGER SQL_ODBC_INTERFACE_CONFORMANCE = 152; + enum SQLINTEGER SQL_PARAM_ARRAY_ROW_COUNTS = 153; + enum SQLINTEGER SQL_PARAM_ARRAY_SELECTS = 154; + enum SQLINTEGER SQL_SQL92_DATETIME_FUNCTIONS = 155; + enum SQLINTEGER SQL_SQL92_FOREIGN_KEY_DELETE_RULE = 156; + enum SQLINTEGER SQL_SQL92_FOREIGN_KEY_UPDATE_RULE = 157; + enum SQLINTEGER SQL_SQL92_GRANT = 158; + enum SQLINTEGER SQL_SQL92_NUMERIC_VALUE_FUNCTIONS = 159; + enum SQLINTEGER SQL_SQL92_PREDICATES = 160; + enum SQLINTEGER SQL_SQL92_RELATIONAL_JOIN_OPERATORS = 161; + enum SQLINTEGER SQL_SQL92_REVOKE = 162; + enum SQLINTEGER SQL_SQL92_ROW_VALUE_CONSTRUCTOR = 163; + enum SQLINTEGER SQL_SQL92_STRING_FUNCTIONS = 164; + enum SQLINTEGER SQL_SQL92_VALUE_EXPRESSIONS = 165; + enum SQLINTEGER SQL_STANDARD_CLI_CONFORMANCE = 166; + enum SQLINTEGER SQL_STATIC_CURSOR_ATTRIBUTES1 = 167; + enum SQLINTEGER SQL_STATIC_CURSOR_ATTRIBUTES2 = 168; + enum SQLINTEGER SQL_AGGREGATE_FUNCTIONS = 169; + enum SQLINTEGER SQL_DDL_INDEX = 170; + enum SQLINTEGER SQL_DM_VER = 171; + enum SQLINTEGER SQL_INSERT_STATEMENT = 172; + enum SQLINTEGER SQL_CONVERT_GUID = 173; + enum SQLINTEGER SQL_SCHEMA_INFERENCE = 174; + enum SQLINTEGER SQL_BINARY_FUNCTIONS = 175; + enum SQLINTEGER SQL_ISO_STRING_FUNCTIONS = 176; + enum SQLINTEGER SQL_ISO_BINARY_FUNCTIONS = 177; + enum SQLINTEGER SQL_LIMIT_ESCAPE_CLAUSE = 178; + enum SQLINTEGER SQL_NATIVE_ESCAPE_CLAUSE = 179; + enum SQLINTEGER SQL_RETURN_ESCAPE_CLAUSE = 180; + enum SQLINTEGER SQL_FORMAT_ESCAPE_CLAUSE = 181; + enum SQLINTEGER SQL_ASYNC_DBC_FUNCTIONS = 10023; + enum SQLINTEGER SQL_DRIVER_AWARE_POOLING_SUPPORTED = 10024; + enum SQLINTEGER SQL_ASYNC_NOTIFICATION = 10025; + enum SQLINTEGER SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = 0; + enum SQLINTEGER SQL_ASYNC_NOTIFICATION_CAPABLE = 1; + enum SQLINTEGER SQL_DTC_TRANSITION_COST = 1750; + enum SQLINTEGER SQL_AT_ADD_COLUMN_SINGLE = 32; + enum SQLINTEGER SQL_AT_ADD_COLUMN_DEFAULT = 64; + enum SQLINTEGER SQL_AT_ADD_COLUMN_COLLATION = 128; + enum SQLINTEGER SQL_AT_SET_COLUMN_DEFAULT = 256; + enum SQLINTEGER SQL_AT_DROP_COLUMN_DEFAULT = 512; + enum SQLINTEGER SQL_AT_DROP_COLUMN_CASCADE = 1024; + enum SQLINTEGER SQL_AT_DROP_COLUMN_RESTRICT = 2048; + enum SQLINTEGER SQL_AT_ADD_TABLE_CONSTRAINT = 4096; + enum SQLINTEGER SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE = 8192; + enum SQLINTEGER SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = 16384; + enum SQLINTEGER SQL_AT_CONSTRAINT_NAME_DEFINITION = 32768; + enum SQLINTEGER SQL_AT_CONSTRAINT_INITIALLY_DEFERRED = 65536; + enum SQLINTEGER SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE = 131072; + enum SQLINTEGER SQL_AT_CONSTRAINT_DEFERRABLE = 262144; + enum SQLINTEGER SQL_AT_CONSTRAINT_NON_DEFERRABLE = 524288; + enum SQLINTEGER SQL_CVT_CHAR = 1; + enum SQLINTEGER SQL_CVT_NUMERIC = 2; + enum SQLINTEGER SQL_CVT_DECIMAL = 4; + enum SQLINTEGER SQL_CVT_INTEGER = 8; + enum SQLINTEGER SQL_CVT_SMALLINT = 16; + enum SQLINTEGER SQL_CVT_FLOAT = 32; + enum SQLINTEGER SQL_CVT_REAL = 64; + enum SQLINTEGER SQL_CVT_DOUBLE = 128; + enum SQLINTEGER SQL_CVT_VARCHAR = 256; + enum SQLINTEGER SQL_CVT_LONGVARCHAR = 512; + enum SQLINTEGER SQL_CVT_BINARY = 1024; + enum SQLINTEGER SQL_CVT_VARBINARY = 2048; + enum SQLINTEGER SQL_CVT_BIT = 4096; + enum SQLINTEGER SQL_CVT_TINYINT = 8192; + enum SQLINTEGER SQL_CVT_BIGINT = 16384; + enum SQLINTEGER SQL_CVT_DATE = 32768; + enum SQLINTEGER SQL_CVT_TIME = 65536; + enum SQLINTEGER SQL_CVT_TIMESTAMP = 131072; + enum SQLINTEGER SQL_CVT_LONGVARBINARY = 262144; + enum SQLINTEGER SQL_CVT_INTERVAL_YEAR_MONTH = 524288; + enum SQLINTEGER SQL_CVT_INTERVAL_DAY_TIME = 1048576; + enum SQLINTEGER SQL_CVT_WCHAR = 2097152; + enum SQLINTEGER SQL_CVT_WLONGVARCHAR = 4194304; + enum SQLINTEGER SQL_CVT_WVARCHAR = 8388608; + enum SQLINTEGER SQL_CVT_GUID = 16777216; + enum SQLINTEGER SQL_FN_CVT_CONVERT = 1; + enum SQLINTEGER SQL_FN_CVT_CAST = 2; + enum SQLINTEGER SQL_FN_STR_CONCAT = 1; + enum SQLINTEGER SQL_FN_STR_INSERT = 2; + enum SQLINTEGER SQL_FN_STR_LEFT = 4; + enum SQLINTEGER SQL_FN_STR_LTRIM = 8; + enum SQLINTEGER SQL_FN_STR_LENGTH = 16; + enum SQLINTEGER SQL_FN_STR_LOCATE = 32; + enum SQLINTEGER SQL_FN_STR_LCASE = 64; + enum SQLINTEGER SQL_FN_STR_REPEAT = 128; + enum SQLINTEGER SQL_FN_STR_REPLACE = 256; + enum SQLINTEGER SQL_FN_STR_RIGHT = 512; + enum SQLINTEGER SQL_FN_STR_RTRIM = 1024; + enum SQLINTEGER SQL_FN_STR_SUBSTRING = 2048; + enum SQLINTEGER SQL_FN_STR_UCASE = 4096; + enum SQLINTEGER SQL_FN_STR_ASCII = 8192; + enum SQLINTEGER SQL_FN_STR_CHAR = 16384; + enum SQLINTEGER SQL_FN_STR_DIFFERENCE = 32768; + enum SQLINTEGER SQL_FN_STR_LOCATE_2 = 65536; + enum SQLINTEGER SQL_FN_STR_SOUNDEX = 131072; + enum SQLINTEGER SQL_FN_STR_SPACE = 262144; + enum SQLINTEGER SQL_FN_STR_BIT_LENGTH = 524288; + enum SQLINTEGER SQL_FN_STR_CHAR_LENGTH = 1048576; + enum SQLINTEGER SQL_FN_STR_CHARACTER_LENGTH = 2097152; + enum SQLINTEGER SQL_FN_STR_OCTET_LENGTH = 4194304; + enum SQLINTEGER SQL_FN_STR_POSITION = 8388608; + enum SQLINTEGER SQL_SSF_CONVERT = 1; + enum SQLINTEGER SQL_SSF_LOWER = 2; + enum SQLINTEGER SQL_SSF_UPPER = 4; + enum SQLINTEGER SQL_SSF_SUBSTRING = 8; + enum SQLINTEGER SQL_SSF_TRANSLATE = 16; + enum SQLINTEGER SQL_SSF_TRIM_BOTH = 32; + enum SQLINTEGER SQL_SSF_TRIM_LEADING = 64; + enum SQLINTEGER SQL_SSF_TRIM_TRAILING = 128; + enum SQLINTEGER SQL_SSF_OVERLAY = 256; + enum SQLINTEGER SQL_SSF_LENGTH = 512; + enum SQLINTEGER SQL_SSF_POSITION = 1024; + enum SQLINTEGER SQL_SSF_CONCAT = 2048; + enum SQLINTEGER SQL_FN_NUM_ABS = 1; + enum SQLINTEGER SQL_FN_NUM_ACOS = 2; + enum SQLINTEGER SQL_FN_NUM_ASIN = 4; + enum SQLINTEGER SQL_FN_NUM_ATAN = 8; + enum SQLINTEGER SQL_FN_NUM_ATAN2 = 16; + enum SQLINTEGER SQL_FN_NUM_CEILING = 32; + enum SQLINTEGER SQL_FN_NUM_COS = 64; + enum SQLINTEGER SQL_FN_NUM_COT = 128; + enum SQLINTEGER SQL_FN_NUM_EXP = 256; + enum SQLINTEGER SQL_FN_NUM_FLOOR = 512; + enum SQLINTEGER SQL_FN_NUM_LOG = 1024; + enum SQLINTEGER SQL_FN_NUM_MOD = 2048; + enum SQLINTEGER SQL_FN_NUM_SIGN = 4096; + enum SQLINTEGER SQL_FN_NUM_SIN = 8192; + enum SQLINTEGER SQL_FN_NUM_SQRT = 16384; + enum SQLINTEGER SQL_FN_NUM_TAN = 32768; + enum SQLINTEGER SQL_FN_NUM_PI = 65536; + enum SQLINTEGER SQL_FN_NUM_RAND = 131072; + enum SQLINTEGER SQL_FN_NUM_DEGREES = 262144; + enum SQLINTEGER SQL_FN_NUM_LOG10 = 524288; + enum SQLINTEGER SQL_FN_NUM_POWER = 1048576; + enum SQLINTEGER SQL_FN_NUM_RADIANS = 2097152; + enum SQLINTEGER SQL_FN_NUM_ROUND = 4194304; + enum SQLINTEGER SQL_FN_NUM_TRUNCATE = 8388608; + enum SQLINTEGER SQL_SNVF_BIT_LENGTH = 1; + enum SQLINTEGER SQL_SNVF_CHAR_LENGTH = 2; + enum SQLINTEGER SQL_SNVF_CHARACTER_LENGTH = 4; + enum SQLINTEGER SQL_SNVF_EXTRACT = 8; + enum SQLINTEGER SQL_SNVF_OCTET_LENGTH = 16; + enum SQLINTEGER SQL_SNVF_POSITION = 32; + enum SQLINTEGER SQL_FN_TD_NOW = 1; + enum SQLINTEGER SQL_FN_TD_CURDATE = 2; + enum SQLINTEGER SQL_FN_TD_DAYOFMONTH = 4; + enum SQLINTEGER SQL_FN_TD_DAYOFWEEK = 8; + enum SQLINTEGER SQL_FN_TD_DAYOFYEAR = 16; + enum SQLINTEGER SQL_FN_TD_MONTH = 32; + enum SQLINTEGER SQL_FN_TD_QUARTER = 64; + enum SQLINTEGER SQL_FN_TD_WEEK = 128; + enum SQLINTEGER SQL_FN_TD_YEAR = 256; + enum SQLINTEGER SQL_FN_TD_CURTIME = 512; + enum SQLINTEGER SQL_FN_TD_HOUR = 1024; + enum SQLINTEGER SQL_FN_TD_MINUTE = 2048; + enum SQLINTEGER SQL_FN_TD_SECOND = 4096; + enum SQLINTEGER SQL_FN_TD_TIMESTAMPADD = 8192; + enum SQLINTEGER SQL_FN_TD_TIMESTAMPDIFF = 16384; + enum SQLINTEGER SQL_FN_TD_DAYNAME = 32768; + enum SQLINTEGER SQL_FN_TD_MONTHNAME = 65536; + enum SQLINTEGER SQL_FN_TD_CURRENT_DATE = 131072; + enum SQLINTEGER SQL_FN_TD_CURRENT_TIME = 262144; + enum SQLINTEGER SQL_FN_TD_CURRENT_TIMESTAMP = 524288; + enum SQLINTEGER SQL_FN_TD_EXTRACT = 1048576; + enum SQLINTEGER SQL_SDF_CURRENT_DATE = 1; + enum SQLINTEGER SQL_SDF_CURRENT_TIME = 2; + enum SQLINTEGER SQL_SDF_CURRENT_TIMESTAMP = 4; + enum SQLINTEGER SQL_FN_SYS_USERNAME = 1; + enum SQLINTEGER SQL_FN_SYS_DBNAME = 2; + enum SQLINTEGER SQL_FN_SYS_IFNULL = 4; + enum SQLINTEGER SQL_FN_TSI_FRAC_SECOND = 1; + enum SQLINTEGER SQL_FN_TSI_SECOND = 2; + enum SQLINTEGER SQL_FN_TSI_MINUTE = 4; + enum SQLINTEGER SQL_FN_TSI_HOUR = 8; + enum SQLINTEGER SQL_FN_TSI_DAY = 16; + enum SQLINTEGER SQL_FN_TSI_WEEK = 32; + enum SQLINTEGER SQL_FN_TSI_MONTH = 64; + enum SQLINTEGER SQL_FN_TSI_QUARTER = 128; + enum SQLINTEGER SQL_FN_TSI_YEAR = 256; + enum SQLINTEGER SQL_CA1_NEXT = 1; + enum SQLINTEGER SQL_CA1_ABSOLUTE = 2; + enum SQLINTEGER SQL_CA1_RELATIVE = 4; + enum SQLINTEGER SQL_CA1_BOOKMARK = 8; + enum SQLINTEGER SQL_CA1_LOCK_NO_CHANGE = 64; + enum SQLINTEGER SQL_CA1_LOCK_EXCLUSIVE = 128; + enum SQLINTEGER SQL_CA1_LOCK_UNLOCK = 256; + enum SQLINTEGER SQL_CA1_POS_POSITION = 512; + enum SQLINTEGER SQL_CA1_POS_UPDATE = 1024; + enum SQLINTEGER SQL_CA1_POS_DELETE = 2048; + enum SQLINTEGER SQL_CA1_POS_REFRESH = 4096; + enum SQLINTEGER SQL_CA1_POSITIONED_UPDATE = 8192; + enum SQLINTEGER SQL_CA1_POSITIONED_DELETE = 16384; + enum SQLINTEGER SQL_CA1_SELECT_FOR_UPDATE = 32768; + enum SQLINTEGER SQL_CA1_BULK_ADD = 65536; + enum SQLINTEGER SQL_CA1_BULK_UPDATE_BY_BOOKMARK = 131072; + enum SQLINTEGER SQL_CA1_BULK_DELETE_BY_BOOKMARK = 262144; + enum SQLINTEGER SQL_CA1_BULK_FETCH_BY_BOOKMARK = 524288; + enum SQLINTEGER SQL_CA2_READ_ONLY_CONCURRENCY = 1; + enum SQLINTEGER SQL_CA2_LOCK_CONCURRENCY = 2; + enum SQLINTEGER SQL_CA2_OPT_ROWVER_CONCURRENCY = 4; + enum SQLINTEGER SQL_CA2_OPT_VALUES_CONCURRENCY = 8; + enum SQLINTEGER SQL_CA2_SENSITIVITY_ADDITIONS = 16; + enum SQLINTEGER SQL_CA2_SENSITIVITY_DELETIONS = 32; + enum SQLINTEGER SQL_CA2_SENSITIVITY_UPDATES = 64; + enum SQLINTEGER SQL_CA2_MAX_ROWS_SELECT = 128; + enum SQLINTEGER SQL_CA2_MAX_ROWS_INSERT = 256; + enum SQLINTEGER SQL_CA2_MAX_ROWS_DELETE = 512; + enum SQLINTEGER SQL_CA2_MAX_ROWS_UPDATE = 1024; + enum SQLINTEGER SQL_CA2_MAX_ROWS_CATALOG = 2048; + enum SQLINTEGER SQL_CA2_CRC_EXACT = 4096; + enum SQLINTEGER SQL_CA2_CRC_APPROXIMATE = 8192; + enum SQLINTEGER SQL_CA2_SIMULATE_NON_UNIQUE = 16384; + enum SQLINTEGER SQL_CA2_SIMULATE_TRY_UNIQUE = 32768; + enum SQLINTEGER SQL_CA2_SIMULATE_UNIQUE = 65536; + enum SQLINTEGER SQL_OAC_NONE = 0; + enum SQLINTEGER SQL_OAC_LEVEL1 = 1; + enum SQLINTEGER SQL_OAC_LEVEL2 = 2; + enum SQLINTEGER SQL_OSCC_NOT_COMPLIANT = 0; + enum SQLINTEGER SQL_OSCC_COMPLIANT = 1; + enum SQLINTEGER SQL_OSC_MINIMUM = 0; + enum SQLINTEGER SQL_OSC_CORE = 1; + enum SQLINTEGER SQL_OSC_EXTENDED = 2; + enum SQLINTEGER SQL_CB_NULL = 0; + enum SQLINTEGER SQL_CB_NON_NULL = 1; + enum SQLINTEGER SQL_SO_FORWARD_ONLY = 1; + enum SQLINTEGER SQL_SO_KEYSET_DRIVEN = 2; + enum SQLINTEGER SQL_SO_DYNAMIC = 4; + enum SQLINTEGER SQL_SO_MIXED = 8; + enum SQLINTEGER SQL_SO_STATIC = 16; + enum SQLINTEGER SQL_FD_FETCH_BOOKMARK = 128; + enum SQLINTEGER SQL_CN_NONE = 0; + enum SQLINTEGER SQL_CN_DIFFERENT = 1; + enum SQLINTEGER SQL_CN_ANY = 2; + enum SQLINTEGER SQL_NNC_NULL = 0; + enum SQLINTEGER SQL_NNC_NON_NULL = 1; + enum SQLINTEGER SQL_NC_START = 2; + enum SQLINTEGER SQL_NC_END = 4; + enum SQLINTEGER SQL_FILE_NOT_SUPPORTED = 0; + enum SQLINTEGER SQL_FILE_TABLE = 1; + enum SQLINTEGER SQL_FILE_QUALIFIER = 2; + enum SQLINTEGER SQL_GD_BLOCK = 4; + enum SQLINTEGER SQL_GD_BOUND = 8; + enum SQLINTEGER SQL_GD_OUTPUT_PARAMS = 16; + enum SQLINTEGER SQL_GD_CONCURRENT = 32; + enum SQLINTEGER SQL_PS_POSITIONED_DELETE = 1; + enum SQLINTEGER SQL_PS_POSITIONED_UPDATE = 2; + enum SQLINTEGER SQL_PS_SELECT_FOR_UPDATE = 4; + enum SQLINTEGER SQL_GB_NOT_SUPPORTED = 0; + enum SQLINTEGER SQL_GB_GROUP_BY_EQUALS_SELECT = 1; + enum SQLINTEGER SQL_GB_GROUP_BY_CONTAINS_SELECT = 2; + enum SQLINTEGER SQL_GB_NO_RELATION = 3; + enum SQLINTEGER SQL_GB_COLLATE = 4; + enum SQLINTEGER SQL_OU_DML_STATEMENTS = 1; + enum SQLINTEGER SQL_OU_PROCEDURE_INVOCATION = 2; + enum SQLINTEGER SQL_OU_TABLE_DEFINITION = 4; + enum SQLINTEGER SQL_OU_INDEX_DEFINITION = 8; + enum SQLINTEGER SQL_OU_PRIVILEGE_DEFINITION = 16; + enum SQLINTEGER SQL_QU_DML_STATEMENTS = 1; + enum SQLINTEGER SQL_QU_PROCEDURE_INVOCATION = 2; + enum SQLINTEGER SQL_QU_TABLE_DEFINITION = 4; + enum SQLINTEGER SQL_QU_INDEX_DEFINITION = 8; + enum SQLINTEGER SQL_QU_PRIVILEGE_DEFINITION = 16; + enum SQLINTEGER SQL_SQ_COMPARISON = 1; + enum SQLINTEGER SQL_SQ_EXISTS = 2; + enum SQLINTEGER SQL_SQ_IN = 4; + enum SQLINTEGER SQL_SQ_QUANTIFIED = 8; + enum SQLINTEGER SQL_SQ_CORRELATED_SUBQUERIES = 16; + enum SQLINTEGER SQL_U_UNION = 1; + enum SQLINTEGER SQL_U_UNION_ALL = 2; + enum SQLINTEGER SQL_BP_CLOSE = 1; + enum SQLINTEGER SQL_BP_DELETE = 2; + enum SQLINTEGER SQL_BP_DROP = 4; + enum SQLINTEGER SQL_BP_TRANSACTION = 8; + enum SQLINTEGER SQL_BP_UPDATE = 16; + enum SQLINTEGER SQL_BP_OTHER_HSTMT = 32; + enum SQLINTEGER SQL_BP_SCROLL = 64; + enum SQLINTEGER SQL_SS_ADDITIONS = 1; + enum SQLINTEGER SQL_SS_DELETIONS = 2; + enum SQLINTEGER SQL_SS_UPDATES = 4; + enum SQLINTEGER SQL_CV_CREATE_VIEW = 1; + enum SQLINTEGER SQL_CV_CHECK_OPTION = 2; + enum SQLINTEGER SQL_CV_CASCADED = 4; + enum SQLINTEGER SQL_CV_LOCAL = 8; + enum SQLINTEGER SQL_LCK_NO_CHANGE = 1; + enum SQLINTEGER SQL_LCK_EXCLUSIVE = 2; + enum SQLINTEGER SQL_LCK_UNLOCK = 4; + enum SQLINTEGER SQL_POS_POSITION = 1; + enum SQLINTEGER SQL_POS_REFRESH = 2; + enum SQLINTEGER SQL_POS_UPDATE = 4; + enum SQLINTEGER SQL_POS_DELETE = 8; + enum SQLINTEGER SQL_POS_ADD = 16; + enum SQLINTEGER SQL_QL_START = 1; + enum SQLINTEGER SQL_QL_END = 2; + enum SQLINTEGER SQL_AF_AVG = 1; + enum SQLINTEGER SQL_AF_COUNT = 2; + enum SQLINTEGER SQL_AF_MAX = 4; + enum SQLINTEGER SQL_AF_MIN = 8; + enum SQLINTEGER SQL_AF_SUM = 16; + enum SQLINTEGER SQL_AF_DISTINCT = 32; + enum SQLINTEGER SQL_AF_ALL = 64; + enum SQLINTEGER SQL_AF_EVERY = 128; + enum SQLINTEGER SQL_AF_ANY = 256; + enum SQLINTEGER SQL_AF_STDEV_OP = 512; + enum SQLINTEGER SQL_AF_STDEV_SAMP = 1024; + enum SQLINTEGER SQL_AF_VAR_SAMP = 2048; + enum SQLINTEGER SQL_AF_VAR_POP = 4096; + enum SQLINTEGER SQL_AF_ARRAY_AGG = 8192; + enum SQLINTEGER SQL_AF_COLLECT = 16384; + enum SQLINTEGER SQL_AF_FUSION = 32768; + enum SQLINTEGER SQL_AF_INTERSECTION = 65536; + enum SQLINTEGER SQL_SC_SQL92_ENTRY = 1; + enum SQLINTEGER SQL_SC_FIPS127_2_TRANSITIONAL = 2; + enum SQLINTEGER SQL_SC_SQL92_INTERMEDIATE = 4; + enum SQLINTEGER SQL_SC_SQL92_FULL = 8; + enum SQLINTEGER SQL_DL_SQL92_DATE = 1; + enum SQLINTEGER SQL_DL_SQL92_TIME = 2; + enum SQLINTEGER SQL_DL_SQL92_TIMESTAMP = 4; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_YEAR = 8; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_MONTH = 16; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY = 32; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_HOUR = 64; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_MINUTE = 128; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_SECOND = 256; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH = 512; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR = 1024; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE = 2048; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND = 4096; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE = 8192; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND = 16384; + enum SQLINTEGER SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND = 32768; + enum SQLINTEGER SQL_BRC_PROCEDURES = 1; + enum SQLINTEGER SQL_BRC_EXPLICIT = 2; + enum SQLINTEGER SQL_BRC_ROLLED_UP = 4; + enum SQLINTEGER SQL_BS_SELECT_EXPLICIT = 1; + enum SQLINTEGER SQL_BS_ROW_COUNT_EXPLICIT = 2; + enum SQLINTEGER SQL_BS_SELECT_PROC = 4; + enum SQLINTEGER SQL_BS_ROW_COUNT_PROC = 8; + enum SQLINTEGER SQL_PARC_BATCH = 1; + enum SQLINTEGER SQL_PARC_NO_BATCH = 2; + enum SQLINTEGER SQL_PAS_BATCH = 1; + enum SQLINTEGER SQL_PAS_NO_BATCH = 2; + enum SQLINTEGER SQL_PAS_NO_SELECT = 3; + enum SQLINTEGER SQL_IK_NONE = 0; + enum SQLINTEGER SQL_IK_ASC = 1; + enum SQLINTEGER SQL_IK_DESC = 2; + auto SQL_IK_ALL()() + { + return SQL_IK_ASC | SQL_IK_DESC; + } + enum SQLINTEGER SQL_ISV_ASSERTIONS = 1; + enum SQLINTEGER SQL_ISV_CHARACTER_SETS = 2; + enum SQLINTEGER SQL_ISV_CHECK_CONSTRAINTS = 4; + enum SQLINTEGER SQL_ISV_COLLATIONS = 8; + enum SQLINTEGER SQL_ISV_COLUMN_DOMAIN_USAGE = 16; + enum SQLINTEGER SQL_ISV_COLUMN_PRIVILEGES = 32; + enum SQLINTEGER SQL_ISV_COLUMNS = 64; + enum SQLINTEGER SQL_ISV_CONSTRAINT_COLUMN_USAGE = 128; + enum SQLINTEGER SQL_ISV_CONSTRAINT_TABLE_USAGE = 256; + enum SQLINTEGER SQL_ISV_DOMAIN_CONSTRAINTS = 512; + enum SQLINTEGER SQL_ISV_DOMAINS = 1024; + enum SQLINTEGER SQL_ISV_KEY_COLUMN_USAGE = 2048; + enum SQLINTEGER SQL_ISV_REFERENTIAL_CONSTRAINTS = 4096; + enum SQLINTEGER SQL_ISV_SCHEMATA = 8192; + enum SQLINTEGER SQL_ISV_SQL_LANGUAGES = 16384; + enum SQLINTEGER SQL_ISV_TABLE_CONSTRAINTS = 32768; + enum SQLINTEGER SQL_ISV_TABLE_PRIVILEGES = 65536; + enum SQLINTEGER SQL_ISV_TABLES = 131072; + enum SQLINTEGER SQL_ISV_TRANSLATIONS = 262144; + enum SQLINTEGER SQL_ISV_USAGE_PRIVILEGES = 524288; + enum SQLINTEGER SQL_ISV_VIEW_COLUMN_USAGE = 1048576; + enum SQLINTEGER SQL_ISV_VIEW_TABLE_USAGE = 2097152; + enum SQLINTEGER SQL_ISV_VIEWS = 4194304; + enum SQLINTEGER SQL_AD_CONSTRAINT_NAME_DEFINITION = 1; + enum SQLINTEGER SQL_AD_ADD_DOMAIN_CONSTRAINT = 2; + enum SQLINTEGER SQL_AD_DROP_DOMAIN_CONSTRAINT = 4; + enum SQLINTEGER SQL_AD_ADD_DOMAIN_DEFAULT = 8; + enum SQLINTEGER SQL_AD_DROP_DOMAIN_DEFAULT = 16; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED = 32; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE = 64; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_DEFERRABLE = 128; + enum SQLINTEGER SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE = 256; + enum SQLINTEGER SQL_CS_CREATE_SCHEMA = 1; + enum SQLINTEGER SQL_CS_AUTHORIZATION = 2; + enum SQLINTEGER SQL_CS_DEFAULT_CHARACTER_SET = 4; + enum SQLINTEGER SQL_CTR_CREATE_TRANSLATION = 1; + enum SQLINTEGER SQL_CA_CREATE_ASSERTION = 1; + enum SQLINTEGER SQL_CA_CONSTRAINT_INITIALLY_DEFERRED = 16; + enum SQLINTEGER SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE = 32; + enum SQLINTEGER SQL_CA_CONSTRAINT_DEFERRABLE = 64; + enum SQLINTEGER SQL_CA_CONSTRAINT_NON_DEFERRABLE = 128; + enum SQLINTEGER SQL_CCS_CREATE_CHARACTER_SET = 1; + enum SQLINTEGER SQL_CCS_COLLATE_CLAUSE = 2; + enum SQLINTEGER SQL_CCS_LIMITED_COLLATION = 4; + enum SQLINTEGER SQL_CCOL_CREATE_COLLATION = 1; + enum SQLINTEGER SQL_CDO_CREATE_DOMAIN = 1; + enum SQLINTEGER SQL_CDO_DEFAULT = 2; + enum SQLINTEGER SQL_CDO_CONSTRAINT = 4; + enum SQLINTEGER SQL_CDO_COLLATION = 8; + enum SQLINTEGER SQL_CDO_CONSTRAINT_NAME_DEFINITION = 16; + enum SQLINTEGER SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED = 32; + enum SQLINTEGER SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE = 64; + enum SQLINTEGER SQL_CDO_CONSTRAINT_DEFERRABLE = 128; + enum SQLINTEGER SQL_CDO_CONSTRAINT_NON_DEFERRABLE = 256; + enum SQLINTEGER SQL_CT_CREATE_TABLE = 1; + enum SQLINTEGER SQL_CT_COMMIT_PRESERVE = 2; + enum SQLINTEGER SQL_CT_COMMIT_DELETE = 4; + enum SQLINTEGER SQL_CT_GLOBAL_TEMPORARY = 8; + enum SQLINTEGER SQL_CT_LOCAL_TEMPORARY = 16; + enum SQLINTEGER SQL_CT_CONSTRAINT_INITIALLY_DEFERRED = 32; + enum SQLINTEGER SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE = 64; + enum SQLINTEGER SQL_CT_CONSTRAINT_DEFERRABLE = 128; + enum SQLINTEGER SQL_CT_CONSTRAINT_NON_DEFERRABLE = 256; + enum SQLINTEGER SQL_CT_COLUMN_CONSTRAINT = 512; + enum SQLINTEGER SQL_CT_COLUMN_DEFAULT = 1024; + enum SQLINTEGER SQL_CT_COLUMN_COLLATION = 2048; + enum SQLINTEGER SQL_CT_TABLE_CONSTRAINT = 4096; + enum SQLINTEGER SQL_CT_CONSTRAINT_NAME_DEFINITION = 8192; + enum SQLINTEGER SQL_DI_CREATE_INDEX = 1; + enum SQLINTEGER SQL_DI_DROP_INDEX = 2; + enum SQLINTEGER SQL_DC_DROP_COLLATION = 1; + enum SQLINTEGER SQL_DD_DROP_DOMAIN = 1; + enum SQLINTEGER SQL_DD_RESTRICT = 2; + enum SQLINTEGER SQL_DD_CASCADE = 4; + enum SQLINTEGER SQL_DS_DROP_SCHEMA = 1; + enum SQLINTEGER SQL_DS_RESTRICT = 2; + enum SQLINTEGER SQL_DS_CASCADE = 4; + enum SQLINTEGER SQL_DCS_DROP_CHARACTER_SET = 1; + enum SQLINTEGER SQL_DA_DROP_ASSERTION = 1; + enum SQLINTEGER SQL_DT_DROP_TABLE = 1; + enum SQLINTEGER SQL_DT_RESTRICT = 2; + enum SQLINTEGER SQL_DT_CASCADE = 4; + enum SQLINTEGER SQL_DTR_DROP_TRANSLATION = 1; + enum SQLINTEGER SQL_DV_DROP_VIEW = 1; + enum SQLINTEGER SQL_DV_RESTRICT = 2; + enum SQLINTEGER SQL_DV_CASCADE = 4; + enum SQLINTEGER SQL_IS_INSERT_LITERALS = 1; + enum SQLINTEGER SQL_IS_INSERT_SEARCHED = 2; + enum SQLINTEGER SQL_IS_SELECT_INTO = 4; + enum SQLUINTEGER SQL_OIC_CORE = 1u; + enum SQLUINTEGER SQL_OIC_LEVEL1 = 2u; + enum SQLUINTEGER SQL_OIC_LEVEL2 = 3u; + enum SQLINTEGER SQL_SFKD_CASCADE = 1; + enum SQLINTEGER SQL_SFKD_NO_ACTION = 2; + enum SQLINTEGER SQL_SFKD_SET_DEFAULT = 4; + enum SQLINTEGER SQL_SFKD_SET_NULL = 8; + enum SQLINTEGER SQL_SFKU_CASCADE = 1; + enum SQLINTEGER SQL_SFKU_NO_ACTION = 2; + enum SQLINTEGER SQL_SFKU_SET_DEFAULT = 4; + enum SQLINTEGER SQL_SFKU_SET_NULL = 8; + enum SQLINTEGER SQL_SG_USAGE_ON_DOMAIN = 1; + enum SQLINTEGER SQL_SG_USAGE_ON_CHARACTER_SET = 2; + enum SQLINTEGER SQL_SG_USAGE_ON_COLLATION = 4; + enum SQLINTEGER SQL_SG_USAGE_ON_TRANSLATION = 8; + enum SQLINTEGER SQL_SG_WITH_GRANT_OPTION = 16; + enum SQLINTEGER SQL_SG_DELETE_TABLE = 32; + enum SQLINTEGER SQL_SG_INSERT_TABLE = 64; + enum SQLINTEGER SQL_SG_INSERT_COLUMN = 128; + enum SQLINTEGER SQL_SG_REFERENCES_TABLE = 256; + enum SQLINTEGER SQL_SG_REFERENCES_COLUMN = 512; + enum SQLINTEGER SQL_SG_SELECT_TABLE = 1024; + enum SQLINTEGER SQL_SG_UPDATE_TABLE = 2048; + enum SQLINTEGER SQL_SG_UPDATE_COLUMN = 4096; + enum SQLINTEGER SQL_SP_EXISTS = 1; + enum SQLINTEGER SQL_SP_ISNOTNULL = 2; + enum SQLINTEGER SQL_SP_ISNULL = 4; + enum SQLINTEGER SQL_SP_MATCH_FULL = 8; + enum SQLINTEGER SQL_SP_MATCH_PARTIAL = 16; + enum SQLINTEGER SQL_SP_MATCH_UNIQUE_FULL = 32; + enum SQLINTEGER SQL_SP_MATCH_UNIQUE_PARTIAL = 64; + enum SQLINTEGER SQL_SP_OVERLAPS = 128; + enum SQLINTEGER SQL_SP_UNIQUE = 256; + enum SQLINTEGER SQL_SP_LIKE = 512; + enum SQLINTEGER SQL_SP_IN = 1024; + enum SQLINTEGER SQL_SP_BETWEEN = 2048; + enum SQLINTEGER SQL_SP_COMPARISON = 4096; + enum SQLINTEGER SQL_SP_QUANTIFIED_COMPARISON = 8192; + enum SQLINTEGER SQL_SRJO_CORRESPONDING_CLAUSE = 1; + enum SQLINTEGER SQL_SRJO_CROSS_JOIN = 2; + enum SQLINTEGER SQL_SRJO_EXCEPT_JOIN = 4; + enum SQLINTEGER SQL_SRJO_FULL_OUTER_JOIN = 8; + enum SQLINTEGER SQL_SRJO_INNER_JOIN = 16; + enum SQLINTEGER SQL_SRJO_INTERSECT_JOIN = 32; + enum SQLINTEGER SQL_SRJO_LEFT_OUTER_JOIN = 64; + enum SQLINTEGER SQL_SRJO_NATURAL_JOIN = 128; + enum SQLINTEGER SQL_SRJO_RIGHT_OUTER_JOIN = 256; + enum SQLINTEGER SQL_SRJO_UNION_JOIN = 512; + enum SQLINTEGER SQL_SR_USAGE_ON_DOMAIN = 1; + enum SQLINTEGER SQL_SR_USAGE_ON_CHARACTER_SET = 2; + enum SQLINTEGER SQL_SR_USAGE_ON_COLLATION = 4; + enum SQLINTEGER SQL_SR_USAGE_ON_TRANSLATION = 8; + enum SQLINTEGER SQL_SR_GRANT_OPTION_FOR = 16; + enum SQLINTEGER SQL_SR_CASCADE = 32; + enum SQLINTEGER SQL_SR_RESTRICT = 64; + enum SQLINTEGER SQL_SR_DELETE_TABLE = 128; + enum SQLINTEGER SQL_SR_INSERT_TABLE = 256; + enum SQLINTEGER SQL_SR_INSERT_COLUMN = 512; + enum SQLINTEGER SQL_SR_REFERENCES_TABLE = 1024; + enum SQLINTEGER SQL_SR_REFERENCES_COLUMN = 2048; + enum SQLINTEGER SQL_SR_SELECT_TABLE = 4096; + enum SQLINTEGER SQL_SR_UPDATE_TABLE = 8192; + enum SQLINTEGER SQL_SR_UPDATE_COLUMN = 16384; + enum SQLINTEGER SQL_SRVC_VALUE_EXPRESSION = 1; + enum SQLINTEGER SQL_SRVC_NULL = 2; + enum SQLINTEGER SQL_SRVC_DEFAULT = 4; + enum SQLINTEGER SQL_SRVC_ROW_SUBQUERY = 8; + enum SQLINTEGER SQL_SVE_CASE = 1; + enum SQLINTEGER SQL_SVE_CAST = 2; + enum SQLINTEGER SQL_SVE_COALESCE = 4; + enum SQLINTEGER SQL_SVE_NULLIF = 8; + enum SQLINTEGER SQL_SCC_XOPEN_CLI_VERSION1 = 1; + enum SQLINTEGER SQL_SCC_ISO92_CLI = 2; + enum SQLINTEGER SQL_DRIVER_AWARE_POOLING_NOT_CAPABLE = 0; + enum SQLINTEGER SQL_DRIVER_AWARE_POOLING_CAPABLE = 1; + enum SQLINTEGER SQL_DTC_ENLIST_EXPENSIVE = 1; + enum SQLINTEGER SQL_DTC_UNENLIST_EXPENSIVE = 2; + enum SQLINTEGER SQL_ASYNC_DBC_NOT_CAPABLE = 0; + enum SQLINTEGER SQL_ASYNC_DBC_CAPABLE = 1; + enum SQLINTEGER SQL_LC_NONE = 0; + enum SQLINTEGER SQL_LC_TAKE = 1; + enum SQLINTEGER SQL_LC_SKIP = 3; + enum SQLINTEGER SQL_RC_NONE = 0; + enum SQLINTEGER SQL_RC_INSERT_SINGLE_ROWID = 1; + auto SQL_RC_INSERT_SINGLE_ANY()() + { + return 2 | SQL_RC_INSERT_SINGLE_ROWID; + } + auto SQL_RC_INSERT_MULTIPLE_ROWID()() + { + return 4 | SQL_RC_INSERT_SINGLE_ROWID; + } + auto SQL_RC_INSERT_MULTIPLE_ANY()() + { + return 8 | SQL_RC_INSERT_MULTIPLE_ROWID | SQL_RC_INSERT_SINGLE_ANY; + } + enum SQLINTEGER SQL_RC_INSERT_SELECT_ROWID = 16; + auto SQL_RC_INSERT_SELECT_ANY()() + { + return 32 | SQL_RC_INSERT_SELECT_ROWID; + } + enum SQLINTEGER SQL_RC_UPDATE_ROWID = 64; + auto SQL_RC_UPDATE_ANY()() + { + return 128 | SQL_RC_UPDATE_ROWID; + } + enum SQLINTEGER SQL_RC_DELETE_ROWID = 256; + auto SQL_RC_DELETE_ANY()() + { + return 512 | SQL_RC_DELETE_ROWID; + } + enum SQLINTEGER SQL_RC_SELECT_INTO_ROWID = 1024; + auto SQL_RC_SELECT_INTO_ANY()() + { + return 2048 | SQL_RC_SELECT_INTO_ROWID; + } + enum SQLINTEGER SQL_FC_NONE = 0; + enum SQLINTEGER SQL_FC_JSON = 1; + enum SQLINTEGER SQL_FC_JSON_BINARY = 2; + enum SQLINTEGER SQL_FETCH_FIRST_USER = 31; + enum SQLINTEGER SQL_FETCH_FIRST_SYSTEM = 32; + enum SQLINTEGER SQL_ENTIRE_ROWSET = 0; + enum SQLINTEGER SQL_POSITION = 0; + enum SQLINTEGER SQL_REFRESH = 1; + enum SQLINTEGER SQL_UPDATE = 2; + enum SQLINTEGER SQL_DELETE = 3; + enum SQLINTEGER SQL_ADD = 4; + enum SQLINTEGER SQL_UPDATE_BY_BOOKMARK = 5; + enum SQLINTEGER SQL_DELETE_BY_BOOKMARK = 6; + enum SQLINTEGER SQL_FETCH_BY_BOOKMARK = 7; + enum SQLINTEGER SQL_LOCK_NO_CHANGE = 0; + enum SQLINTEGER SQL_LOCK_EXCLUSIVE = 1; + enum SQLINTEGER SQL_LOCK_UNLOCK = 2; + auto SQL_POSITION_TO(__MP4, __MP5)(__MP4 hstmt, __MP5 irow) + { + return SQLSetPos(hstmt, irow, SQL_POSITION, SQL_LOCK_NO_CHANGE); + } + auto SQL_LOCK_RECORD(__MP6, __MP7, __MP8)(__MP6 hstmt, __MP7 irow, __MP8 fLock) + { + return SQLSetPos(hstmt, irow, SQL_POSITION, fLock); + } + auto SQL_REFRESH_RECORD(__MP9, __MP10, __MP11)(__MP9 hstmt, __MP10 irow, __MP11 fLock) + { + return SQLSetPos(hstmt, irow, SQL_REFRESH, fLock); + } + auto SQL_UPDATE_RECORD(__MP12, __MP13)(__MP12 hstmt, __MP13 irow) + { + return SQLSetPos(hstmt, irow, SQL_UPDATE, SQL_LOCK_NO_CHANGE); + } + auto SQL_DELETE_RECORD(__MP14, __MP15)(__MP14 hstmt, __MP15 irow) + { + return SQLSetPos(hstmt, irow, SQL_DELETE, SQL_LOCK_NO_CHANGE); + } + auto SQL_ADD_RECORD(__MP16, __MP17)(__MP16 hstmt, __MP17 irow) + { + return SQLSetPos(hstmt, irow, SQL_ADD, SQL_LOCK_NO_CHANGE); + } + enum SQLINTEGER SQL_BEST_ROWID = 1; + enum SQLINTEGER SQL_ROWVER = 2; + enum SQLINTEGER SQL_PC_NOT_PSEUDO = 1; + enum SQLINTEGER SQL_QUICK = 0; + enum SQLINTEGER SQL_ENSURE = 1; + enum SQLINTEGER SQL_TABLE_STAT = 0; + enum SQL_ALL_CATALOGS = "%"; + enum SQL_ALL_SCHEMAS = "%"; + enum SQL_ALL_TABLE_TYPES = "%"; + enum SQLINTEGER SQL_DRIVER_NOPROMPT = 0; + enum SQLINTEGER SQL_DRIVER_COMPLETE = 1; + enum SQLINTEGER SQL_DRIVER_PROMPT = 2; + enum SQLINTEGER SQL_DRIVER_COMPLETE_REQUIRED = 3; + enum SQLINTEGER SQL_FETCH_BOOKMARK = 8; + enum SQLINTEGER SQL_ROW_SUCCESS = 0; + enum SQLINTEGER SQL_ROW_DELETED = 1; + enum SQLINTEGER SQL_ROW_UPDATED = 2; + enum SQLINTEGER SQL_ROW_NOROW = 3; + enum SQLINTEGER SQL_ROW_ADDED = 4; + enum SQLINTEGER SQL_ROW_ERROR = 5; + enum SQLINTEGER SQL_ROW_SUCCESS_WITH_INFO = 6; + enum SQLINTEGER SQL_ROW_PROCEED = 0; + enum SQLINTEGER SQL_ROW_IGNORE = 1; + enum SQLINTEGER SQL_PARAM_SUCCESS = 0; + enum SQLINTEGER SQL_PARAM_SUCCESS_WITH_INFO = 6; + enum SQLINTEGER SQL_PARAM_ERROR = 5; + enum SQLINTEGER SQL_PARAM_UNUSED = 7; + enum SQLINTEGER SQL_PARAM_DIAG_UNAVAILABLE = 1; + enum SQLINTEGER SQL_PARAM_PROCEED = 0; + enum SQLINTEGER SQL_PARAM_IGNORE = 1; + enum SQLINTEGER SQL_CASCADE = 0; + enum SQLINTEGER SQL_RESTRICT = 1; + enum SQLINTEGER SQL_SET_NULL = 2; + enum SQLINTEGER SQL_NO_ACTION = 3; + enum SQLINTEGER SQL_SET_DEFAULT = 4; + enum SQLINTEGER SQL_INITIALLY_DEFERRED = 5; + enum SQLINTEGER SQL_INITIALLY_IMMEDIATE = 6; + enum SQLINTEGER SQL_NOT_DEFERRABLE = 7; + enum SQLINTEGER SQL_PARAM_TYPE_UNKNOWN = 0; + enum SQLINTEGER SQL_PARAM_INPUT = 1; + enum SQLINTEGER SQL_PARAM_INPUT_OUTPUT = 2; + enum SQLINTEGER SQL_RESULT_COL = 3; + enum SQLINTEGER SQL_PARAM_OUTPUT = 4; + enum SQLINTEGER SQL_RETURN_VALUE = 5; + enum SQLINTEGER SQL_PARAM_INPUT_OUTPUT_STREAM = 8; + enum SQLINTEGER SQL_PARAM_OUTPUT_STREAM = 16; + enum SQLINTEGER SQL_PT_UNKNOWN = 0; + enum SQLINTEGER SQL_PT_PROCEDURE = 1; + enum SQLINTEGER SQL_PT_FUNCTION = 2; + auto SQL_WCHAR()() + { + return -8; + } + auto SQL_WVARCHAR()() + { + return -9; + } + auto SQL_WLONGVARCHAR()() + { + return -10; + } + enum SQLINTEGER SQL_SQLSTATE_SIZEW = 10; +} diff --git a/libphobos/src/etc/c/odbc/package.d b/libphobos/src/etc/c/odbc/package.d new file mode 100644 index 00000000000..b1c6124f310 --- /dev/null +++ b/libphobos/src/etc/c/odbc/package.d @@ -0,0 +1,63 @@ +/** + * ODBC Header Module + * + * ImportC translation from the $(LINK2 https://github.com/microsoft/ODBC-Specification, + ODBC 4.0 Specification) Headers. + * + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) + * Source: $(PHOBOSSRC etc/c/odbc/_package.d) + +Declarations for interfacing with the ODBC library. + +The prior version of the ODBC bindings has been deprecated and will be removed in a future release. + +See_Also: $(LINK2 https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/odbc-api-reference, + ODBC API Reference on MSDN) + */ + +module etc.c.odbc; + +static if (size_t.sizeof == 8) +{ + public import etc.c.odbc.odbc64; +} +else +{ + public import etc.c.odbc.odbc32; +} + +// Manually converted enums +public enum int SQL_CA2_MAX_ROWS_AFFECTS_ALL = SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT | + SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG; + +public enum string SQL_ODBC_KEYWORDS = "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS, +ASC,ASSERTION,AT,AUTHORIZATION,AVG, +BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG, +CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE, +COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT, +CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT, +CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR, +DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE, +DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT, +DISTINCT,DOMAIN,DOUBLE,DROP, +ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE, +EXISTS,EXTERNAL,EXTRACT, +FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL, +GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR, +IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER, +INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION, +JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER, +MATCH,MAX,MIN,MINUTE,MODULE,MONTH, +NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC, +OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS, +PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE, +PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC, +READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS, +SCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE, +SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING, +SUBSTRING,SUM,SYSTEM_USER, +TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE, +TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE, +UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING, +VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE, +YEAR,ZONE"; diff --git a/libphobos/src/etc/c/odbc/sql.d b/libphobos/src/etc/c/odbc/sql.d new file mode 100644 index 00000000000..9d2b8a08c74 --- /dev/null +++ b/libphobos/src/etc/c/odbc/sql.d @@ -0,0 +1,442 @@ +/** + * Windows API header module + * + * Translated from MinGW Windows headers + * + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) + * Source: $(PHOBOSSRC etc/c/odbc/_sql.d) + +Declarations for interfacing with the ODBC library. + +See_Also: $(LINK2 https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/odbc-api-reference, + ODBC API Reference on MSDN) + */ +deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package.") +module etc.c.odbc.sql; + +public import etc.c.odbc.sqltypes; + +enum ODBCVER = 0x0351; + +enum SQL_ACCESSIBLE_PROCEDURES=20; +enum SQL_ACCESSIBLE_TABLES=19; +enum SQL_ALL_TYPES=0; +enum SQL_ALTER_TABLE=86; +enum SQL_API_SQLALLOCCONNECT=1; +enum SQL_API_SQLALLOCENV=2; +enum SQL_API_SQLALLOCSTMT=3; +enum SQL_API_SQLBINDCOL=4; +enum SQL_API_SQLCANCEL=5; +enum SQL_API_SQLCOLUMNS=40; +enum SQL_API_SQLCONNECT=7; +enum SQL_API_SQLDATASOURCES=57; +enum SQL_API_SQLDESCRIBECOL=8; +enum SQL_API_SQLDISCONNECT=9; +enum SQL_API_SQLERROR=10; +enum SQL_API_SQLEXECDIRECT=11; +enum SQL_API_SQLEXECUTE=12; +enum SQL_API_SQLFETCH=13; +enum SQL_API_SQLFREECONNECT=14; +enum SQL_API_SQLFREEENV=15; +enum SQL_API_SQLFREESTMT=16; +enum SQL_API_SQLGETCONNECTOPTION=42; +enum SQL_API_SQLGETCURSORNAME=17; +enum SQL_API_SQLGETDATA=43; +enum SQL_API_SQLGETFUNCTIONS=44; +enum SQL_API_SQLGETINFO=45; +enum SQL_API_SQLGETSTMTOPTION=46; +enum SQL_API_SQLGETTYPEINFO=47; +enum SQL_API_SQLNUMRESULTCOLS=18; +enum SQL_API_SQLPARAMDATA=48; +enum SQL_API_SQLPREPARE=19; +enum SQL_API_SQLPUTDATA=49; +enum SQL_API_SQLROWCOUNT=20; +enum SQL_API_SQLSETCONNECTOPTION=50; +enum SQL_API_SQLSETCURSORNAME=21; +enum SQL_API_SQLSETPARAM=22; +enum SQL_API_SQLSETSTMTOPTION=51; +enum SQL_API_SQLSPECIALCOLUMNS=52; +enum SQL_API_SQLSTATISTICS=53; +enum SQL_API_SQLTABLES=54; +enum SQL_API_SQLTRANSACT=23; + +enum SQL_CB_DELETE=0; +enum SQL_CB_CLOSE=1; +enum SQL_CB_PRESERVE=2; + +enum SQL_CHAR=1; +enum SQL_CLOSE=0; +enum SQL_COMMIT=0; +enum SQL_CURSOR_COMMIT_BEHAVIOR=23; +enum SQL_DATA_AT_EXEC=-2; +enum SQL_DATA_SOURCE_NAME=2; +enum SQL_DATA_SOURCE_READ_ONLY=25; +enum SQL_DBMS_NAME=17; +enum SQL_DBMS_VER=18; +enum SQL_DECIMAL=3; +enum SQL_DEFAULT_TXN_ISOLATION=26; +enum SQL_DOUBLE=8; +enum SQL_DROP=1; +enum SQL_ERROR=-1; + +enum SQL_FD_FETCH_NEXT=1; +enum SQL_FD_FETCH_FIRST=2; +enum SQL_FD_FETCH_LAST=4; +enum SQL_FD_FETCH_PRIOR=8; +enum SQL_FD_FETCH_ABSOLUTE=16; +enum SQL_FD_FETCH_RELATIVE=32; + +enum SQL_FETCH_ABSOLUTE=5; +enum SQL_FETCH_DIRECTION=8; +enum SQL_FETCH_FIRST=2; +enum SQL_FETCH_LAST=3; +enum SQL_FETCH_NEXT=1; +enum SQL_FETCH_PRIOR=4; +enum SQL_FETCH_RELATIVE=6; +enum SQL_FLOAT=6; +enum SQL_GD_ANY_COLUMN=1; +enum SQL_GD_ANY_ORDER=2; +enum SQL_GETDATA_EXTENSIONS=81; +enum SQL_IC_LOWER=2; +enum SQL_IC_MIXED=4; +enum SQL_IC_SENSITIVE=3; +enum SQL_IC_UPPER=1; +enum SQL_IDENTIFIER_CASE=28; +enum SQL_IDENTIFIER_QUOTE_CHAR=29; + +enum SQL_INDEX_ALL=1; +enum SQL_INDEX_CLUSTERED=1; +enum SQL_INDEX_HASHED=2; +enum SQL_INDEX_OTHER=3; +enum SQL_INDEX_UNIQUE=0; + +enum SQL_INTEGER=4; +enum SQL_INTEGRITY=73; +enum SQL_INVALID_HANDLE=-2; + +enum SQL_MAX_CATALOG_NAME_LEN=34; +enum SQL_MAX_COLUMN_NAME_LEN=30; +enum SQL_MAX_COLUMNS_IN_GROUP_BY=97; +enum SQL_MAX_COLUMNS_IN_INDEX=98; +enum SQL_MAX_COLUMNS_IN_ORDER_BY=99; +enum SQL_MAX_COLUMNS_IN_SELECT=100; +enum SQL_MAX_COLUMNS_IN_TABLE=101; +enum SQL_MAX_CURSOR_NAME_LEN=31; +enum SQL_MAX_INDEX_SIZE=102; +enum SQL_MAX_MESSAGE_LENGTH=512; +enum SQL_MAX_ROW_SIZE=104; +enum SQL_MAX_SCHEMA_NAME_LEN=32; +enum SQL_MAX_STATEMENT_LEN=105; +enum SQL_MAX_TABLE_NAME_LEN=35; +enum SQL_MAX_TABLES_IN_SELECT=106; +enum SQL_MAX_USER_NAME_LEN=107; + +enum SQL_MAXIMUM_CATALOG_NAME_LENGTH=SQL_MAX_CATALOG_NAME_LEN; +enum SQL_MAXIMUM_COLUMN_NAME_LENGTH=SQL_MAX_COLUMN_NAME_LEN; +enum SQL_MAXIMUM_COLUMNS_IN_GROUP_BY=SQL_MAX_COLUMNS_IN_GROUP_BY; +enum SQL_MAXIMUM_COLUMNS_IN_INDEX=SQL_MAX_COLUMNS_IN_INDEX; +enum SQL_MAXIMUM_COLUMNS_IN_ORDER_BY=SQL_MAX_COLUMNS_IN_ORDER_BY; +enum SQL_MAXIMUM_COLUMNS_IN_SELECT=SQL_MAX_COLUMNS_IN_SELECT; +enum SQL_MAXIMUM_CURSOR_NAME_LENGTH=SQL_MAX_CURSOR_NAME_LEN; +enum SQL_MAXIMUM_INDEX_SIZE=SQL_MAX_INDEX_SIZE; +enum SQL_MAXIMUM_ROW_SIZE=SQL_MAX_ROW_SIZE; +enum SQL_MAXIMUM_SCHEMA_NAME_LENGTH=SQL_MAX_SCHEMA_NAME_LEN; +enum SQL_MAXIMUM_STATEMENT_LENGTH=SQL_MAX_STATEMENT_LEN; +enum SQL_MAXIMUM_TABLES_IN_SELECT=SQL_MAX_TABLES_IN_SELECT; +enum SQL_MAXIMUM_USER_NAME_LENGTH=SQL_MAX_USER_NAME_LEN; + +enum SQL_NC_HIGH=0; +enum SQL_NC_LOW=1; +enum SQL_NEED_DATA=99; +enum SQL_NO_NULLS=0; +enum SQL_NTS=-3; +enum LONG SQL_NTSL=-3; +enum SQL_NULL_COLLATION=85; +enum SQL_NULL_DATA=-1; +enum SQL_NULL_HDBC=0; +enum SQL_NULL_HENV=0; +enum SQL_NULL_HSTMT=0; +enum SQL_NULLABLE=1; +enum SQL_NULLABLE_UNKNOWN=2; +enum SQL_NUMERIC=2; +enum SQL_ORDER_BY_COLUMNS_IN_SELECT=90; +enum SQL_PC_PSEUDO=2; +enum SQL_PC_UNKNOWN=0; +enum SQL_REAL=7; +enum SQL_RESET_PARAMS=3; +enum SQL_ROLLBACK=1; +enum SQL_SCCO_LOCK=2; +enum SQL_SCCO_OPT_ROWVER=4; +enum SQL_SCCO_OPT_VALUES=8; +enum SQL_SCCO_READ_ONLY=1; +enum SQL_SCOPE_CURROW=0; +enum SQL_SCOPE_SESSION=2; +enum SQL_SCOPE_TRANSACTION=1; +enum SQL_SCROLL_CONCURRENCY=43; +enum SQL_SEARCH_PATTERN_ESCAPE=14; +enum SQL_SERVER_NAME=13; +enum SQL_SMALLINT=5; +enum SQL_SPECIAL_CHARACTERS=94; +enum SQL_STILL_EXECUTING=2; +//MACRO #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) + +enum SQL_SUCCESS=0; +enum SQL_SUCCESS_WITH_INFO=1; + +enum SQL_TC_ALL=2; +enum SQL_TC_DDL_COMMIT=3; +enum SQL_TC_DDL_IGNORE=4; +enum SQL_TC_DML=1; +enum SQL_TC_NONE=0; + + +enum SQL_TXN_CAPABLE=46; +enum SQL_TXN_ISOLATION_OPTION=72; +enum SQL_TXN_READ_COMMITTED=2; +enum SQL_TXN_READ_UNCOMMITTED=1; +enum SQL_TXN_REPEATABLE_READ=4; +enum SQL_TXN_SERIALIZABLE=8; + +enum SQL_TRANSACTION_CAPABLE=SQL_TXN_CAPABLE; +enum SQL_TRANSACTION_ISOLATION_OPTION=SQL_TXN_ISOLATION_OPTION; +enum SQL_TRANSACTION_READ_COMMITTED=SQL_TXN_READ_COMMITTED; +enum SQL_TRANSACTION_READ_UNCOMMITTED=SQL_TXN_READ_UNCOMMITTED; +enum SQL_TRANSACTION_REPEATABLE_READ=SQL_TXN_REPEATABLE_READ; +enum SQL_TRANSACTION_SERIALIZABLE=SQL_TXN_SERIALIZABLE; + +enum SQL_UNBIND=2; +enum SQL_UNKNOWN_TYPE=0; +enum SQL_USER_NAME=47; +enum SQL_VARCHAR=12; + +static if (ODBCVER >= 0x0200) +{ +enum SQL_AT_ADD_COLUMN = 1; +enum SQL_AT_DROP_COLUMN = 2; +} + +static if (ODBCVER >= 0x0201) +{ +enum SQL_OJ_LEFT = 1; +enum SQL_OJ_RIGHT = 2; +enum SQL_OJ_FULL = 4; +enum SQL_OJ_NESTED = 8; +enum SQL_OJ_NOT_ORDERED = 16; +enum SQL_OJ_INNER = 32; +enum SQL_OJ_ALL_COMPARISON_OPS = 64; +} + +static if (ODBCVER >= 0x0300) +{ +enum SQL_AM_CONNECTION=1; +enum SQL_AM_NONE=0; +enum SQL_AM_STATEMENT=2; +enum SQL_API_SQLALLOCHANDLE=1001; +enum SQL_API_SQLBINDPARAM=1002; +enum SQL_API_SQLCLOSECURSOR=1003; +enum SQL_API_SQLCOLATTRIBUTE=6; +enum SQL_API_SQLCOPYDESC=1004; +enum SQL_API_SQLENDTRAN=1005; +enum SQL_API_SQLFETCHSCROLL=1021; +enum SQL_API_SQLFREEHANDLE=1006; +enum SQL_API_SQLGETCONNECTATTR=1007; +enum SQL_API_SQLGETDESCFIELD=1008; +enum SQL_API_SQLGETDESCREC=1009; +enum SQL_API_SQLGETDIAGFIELD=1010; +enum SQL_API_SQLGETDIAGREC=1011; +enum SQL_API_SQLGETENVATTR=1012; +enum SQL_API_SQLGETSTMTATTR=1014; +enum SQL_API_SQLSETCONNECTATTR=1016; +enum SQL_API_SQLSETDESCFIELD=1017; +enum SQL_API_SQLSETDESCREC=1018; +enum SQL_API_SQLSETENVATTR=1019; +enum SQL_API_SQLSETSTMTATTR=1020; +enum SQL_ARD_TYPE=-99; +enum SQL_AT_ADD_CONSTRAINT=8; +enum SQL_ATTR_APP_PARAM_DESC=10011; +enum SQL_ATTR_APP_ROW_DESC=10010; +enum SQL_ATTR_AUTO_IPD=10001; +enum SQL_ATTR_CURSOR_SCROLLABLE=-1; +enum SQL_ATTR_CURSOR_SENSITIVITY=-2; +enum SQL_ATTR_IMP_PARAM_DESC=10013; +enum SQL_ATTR_IMP_ROW_DESC=10012; +enum SQL_ATTR_METADATA_ID=10014; +enum SQL_ATTR_OUTPUT_NTS=10001; +enum SQL_CATALOG_NAME=10003; +enum SQL_CODE_DATE=1; +enum SQL_CODE_TIME=2; +enum SQL_CODE_TIMESTAMP=3; +enum SQL_COLLATION_SEQ=10004; +enum SQL_CURSOR_SENSITIVITY=10001; +enum SQL_DATE_LEN=10; +enum SQL_DATETIME=9; +enum SQL_DEFAULT=99; + +enum SQL_DESC_ALLOC_AUTO=1; +enum SQL_DESC_ALLOC_USER=2; +enum SQL_DESC_ALLOC_TYPE=1099; +enum SQL_DESC_COUNT=1001; +enum SQL_DESC_TYPE=1002; +enum SQL_DESC_LENGTH=1003; +enum SQL_DESC_OCTET_LENGTH_PTR=1004; +enum SQL_DESC_PRECISION=1005; +enum SQL_DESC_SCALE=1006; +enum SQL_DESC_DATETIME_INTERVAL_CODE=1007; +enum SQL_DESC_NULLABLE=1008; +enum SQL_DESC_INDICATOR_PTR=1009; +enum SQL_DESC_DATA_PTR=1010; +enum SQL_DESC_NAME=1011; +enum SQL_DESC_UNNAMED=1012; +enum SQL_DESC_OCTET_LENGTH=1013; + +enum SQL_DESCRIBE_PARAMETER=10002; + +enum SQL_DIAG_ALTER_DOMAIN=3; +enum SQL_DIAG_ALTER_TABLE=4; +enum SQL_DIAG_CALL=7; +enum SQL_DIAG_CLASS_ORIGIN=8; +enum SQL_DIAG_CONNECTION_NAME=10; +enum SQL_DIAG_CREATE_ASSERTION=6; +enum SQL_DIAG_CREATE_CHARACTER_SET=8; +enum SQL_DIAG_CREATE_COLLATION=10; +enum SQL_DIAG_CREATE_DOMAIN=23; +enum SQL_DIAG_CREATE_INDEX=-1; +enum SQL_DIAG_CREATE_SCHEMA=64; +enum SQL_DIAG_CREATE_TABLE=77; +enum SQL_DIAG_CREATE_TRANSLATION=79; +enum SQL_DIAG_CREATE_VIEW=84; +enum SQL_DIAG_DELETE_WHERE=19; +enum SQL_DIAG_DROP_ASSERTION=24; +enum SQL_DIAG_DROP_CHARACTER_SET=25; +enum SQL_DIAG_DROP_COLLATION=26; +enum SQL_DIAG_DROP_DOMAIN=27; +enum SQL_DIAG_DROP_INDEX=(-2); +enum SQL_DIAG_DROP_SCHEMA=31; +enum SQL_DIAG_DROP_TABLE=32; +enum SQL_DIAG_DROP_TRANSLATION=33; +enum SQL_DIAG_DROP_VIEW=36; +enum SQL_DIAG_DYNAMIC_DELETE_CURSOR=38; +enum SQL_DIAG_DYNAMIC_FUNCTION=7; +enum SQL_DIAG_DYNAMIC_FUNCTION_CODE=12; +enum SQL_DIAG_DYNAMIC_UPDATE_CURSOR=81; +enum SQL_DIAG_GRANT=48; +enum SQL_DIAG_INSERT=50; +enum SQL_DIAG_MESSAGE_TEXT=6; +enum SQL_DIAG_NATIVE=5; +enum SQL_DIAG_NUMBER=2; +enum SQL_DIAG_RETURNCODE=1; +enum SQL_DIAG_REVOKE=59; +enum SQL_DIAG_ROW_COUNT=3; +enum SQL_DIAG_SELECT_CURSOR=85; +enum SQL_DIAG_SERVER_NAME=11; +enum SQL_DIAG_SQLSTATE=4; +enum SQL_DIAG_SUBCLASS_ORIGIN=9; +enum SQL_DIAG_UNKNOWN_STATEMENT=0; +enum SQL_DIAG_UPDATE_WHERE=82; + +enum SQL_FALSE=0; +enum SQL_HANDLE_DBC=2; +enum SQL_HANDLE_DESC=4; +enum SQL_HANDLE_ENV=1; +enum SQL_HANDLE_STMT=3; +enum SQL_INSENSITIVE=1; +enum SQL_MAX_CONCURRENT_ACTIVITIES=1; +enum SQL_MAX_DRIVER_CONNECTIONS=0; +enum SQL_MAX_IDENTIFIER_LEN=10005; +enum SQL_MAXIMUM_CONCURRENT_ACTIVITIES=SQL_MAX_CONCURRENT_ACTIVITIES; +enum SQL_MAXIMUM_DRIVER_CONNECTIONS=SQL_MAX_DRIVER_CONNECTIONS; +enum SQL_MAXIMUM_IDENTIFIER_LENGTH=SQL_MAX_IDENTIFIER_LEN; +enum SQL_NAMED=0; +enum SQL_NO_DATA=100; +enum SQL_NONSCROLLABLE=0; +enum SQL_NULL_HANDLE=0L; +enum SQL_NULL_HDESC=0; +enum SQL_OJ_CAPABILITIES=115; +enum SQL_OUTER_JOIN_CAPABILITIES=SQL_OJ_CAPABILITIES; +enum SQL_PC_NON_PSEUDO=1; + +enum SQL_PRED_NONE=0; +enum SQL_PRED_CHAR=1; +enum SQL_PRED_BASIC=2; + +enum SQL_ROW_IDENTIFIER=1; +enum SQL_SCROLLABLE=1; +enum SQL_SENSITIVE=2; +enum SQL_TIME_LEN=8; +enum SQL_TIMESTAMP_LEN=19; +enum SQL_TRUE=1; +enum SQL_TYPE_DATE=91; +enum SQL_TYPE_TIME=92; +enum SQL_TYPE_TIMESTAMP=93; +enum SQL_UNNAMED=1; +enum SQL_UNSPECIFIED=0; +enum SQL_XOPEN_CLI_YEAR=10000; +}//#endif /* ODBCVER >= 0x0300 */ + +extern (System) { + deprecated { + SQLRETURN SQLAllocConnect(SQLHENV, SQLHDBC*); + SQLRETURN SQLAllocEnv(SQLHENV*); + SQLRETURN SQLAllocStmt(SQLHDBC, SQLHSTMT*); + SQLRETURN SQLError(SQLHENV, SQLHDBC, SQLHSTMT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLFreeConnect(SQLHDBC); + SQLRETURN SQLFreeEnv(SQLHENV); + SQLRETURN SQLSetParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN*); + SQLRETURN SQLGetConnectOption(SQLHDBC, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLGetStmtOption(SQLHSTMT, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLSetConnectOption(SQLHDBC, SQLUSMALLINT, SQLULEN); + SQLRETURN SQLSetStmtOption(SQLHSTMT, SQLUSMALLINT, SQLROWCOUNT); + } + SQLRETURN SQLBindCol(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*); + SQLRETURN SQLCancel(SQLHSTMT); + SQLRETURN SQLConnect(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLDescribeCol(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLDisconnect(SQLHDBC); + SQLRETURN SQLExecDirect(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLExecute(SQLHSTMT); + SQLRETURN SQLFetch(SQLHSTMT); + SQLRETURN SQLFreeStmt(SQLHSTMT, SQLUSMALLINT); + SQLRETURN SQLGetCursorName(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLNumResultCols(SQLHSTMT, SQLSMALLINT*); + SQLRETURN SQLPrepare(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLRowCount(SQLHSTMT, SQLLEN*); + SQLRETURN SQLSetCursorName(SQLHSTMT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLTransact(SQLHENV, SQLHDBC, SQLUSMALLINT); + SQLRETURN SQLColumns(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLGetData(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*); + SQLRETURN SQLGetFunctions(SQLHDBC, SQLUSMALLINT, SQLUSMALLINT*); + SQLRETURN SQLGetInfo(SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetTypeInfo(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLParamData(SQLHSTMT, SQLPOINTER*); + SQLRETURN SQLPutData(SQLHSTMT, SQLPOINTER, SQLLEN); + SQLRETURN SQLSpecialColumns(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLStatistics(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLTables(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLDataSources(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + + static if (ODBCVER >= 0x0300) + { + SQLRETURN SQLAllocHandle(SQLSMALLINT, SQLHANDLE, SQLHANDLE*); + SQLRETURN SQLBindParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN*); + SQLRETURN SQLCloseCursor(SQLHSTMT); + SQLRETURN SQLColAttribute(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLPOINTER); + SQLRETURN SQLCopyDesc(SQLHDESC, SQLHDESC); + SQLRETURN SQLEndTran(SQLSMALLINT, SQLHANDLE, SQLSMALLINT); + SQLRETURN SQLFetchScroll(SQLHSTMT, SQLSMALLINT, SQLROWOFFSET); + SQLRETURN SQLFreeHandle(SQLSMALLINT, SQLHANDLE); + SQLRETURN SQLGetConnectAttr(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetDescField(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetDescRec(SQLHDESC, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, + SQLSMALLINT*, SQLSMALLINT*, SQLLEN*, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLGetDiagField(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagRec(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetEnvAttr(SQLHENV, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetStmtAttr(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLSetConnectAttr(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetDescField(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetDescRec(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLLEN, SQLSMALLINT, + SQLSMALLINT, SQLPOINTER, SQLLEN*, SQLLEN*); + SQLRETURN SQLSetEnvAttr(SQLHENV, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetStmtAttr(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER); + }/* (ODBCVER >= 0x0300) */ +} diff --git a/libphobos/src/etc/c/odbc/sqlext.d b/libphobos/src/etc/c/odbc/sqlext.d new file mode 100644 index 00000000000..dbbd53b6edb --- /dev/null +++ b/libphobos/src/etc/c/odbc/sqlext.d @@ -0,0 +1,1307 @@ +/** + * Windows API header module + * + * Translated from MinGW Windows headers + * + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) + * Source: $(PHOBOSSRC etc/c/odbc/_sqlext.d) + +See_Also: $(LINK2 https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/odbc-api-reference, + ODBC API Reference on MSDN) + */ +deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package.") +module etc.c.odbc.sqlext; + +/* Conversion notes: + The MinGW file was a horrible mess. All of the #defines were sorted alphabetically, + which is crazy. This file needs a lot of work. + In MinGW, sqlext #includes sqlucode, but sqlucode #includes sqlext, + creating a circular dependency! +*/ + +public import etc.c.odbc.sql; + +enum SQL_SPEC_MAJOR = 3; +enum SQL_SPEC_MINOR = 51; +const char[] SQL_SPEC_STRING = "03.51"; +enum SQL_ACCESS_MODE = 101; +enum SQL_ACTIVE_CONNECTIONS = 0; +enum SQL_ACTIVE_STATEMENTS = 1; + +enum SQL_DATE = 9; +enum SQL_TIME = 10; +enum SQL_SIGNED_OFFSET = -20; +enum SQL_TINYINT = -6; +enum SQL_TIMESTAMP = 11; +enum SQL_UNSIGNED_OFFSET = -22; + +enum SQL_ADD = 4; +enum SQL_ALL_EXCEPT_LIKE = 2; + +enum SQL_API_ALL_FUNCTIONS = 0; +enum SQL_API_SQLCOLATTRIBUTES = 6; +enum SQL_API_SQLDRIVERCONNECT = 41; +enum SQL_API_SQLBROWSECONNECT = 55; +enum SQL_API_SQLCOLUMNPRIVILEGES = 56; +enum SQL_API_SQLDESCRIBEPARAM = 58; +enum SQL_API_SQLEXTENDEDFETCH = 59; +enum SQL_API_SQLFOREIGNKEYS = 60; +enum SQL_API_SQLMORERESULTS = 61; +enum SQL_API_SQLNATIVESQL = 62; +enum SQL_API_SQLNUMPARAMS = 63; +enum SQL_API_SQLPARAMOPTIONS = 64; +enum SQL_API_SQLPRIMARYKEYS = 65; +enum SQL_API_SQLPROCEDURECOLUMNS = 66; +enum SQL_API_SQLPROCEDURES = 67; +enum SQL_API_SQLSETPOS = 68; +enum SQL_API_SQLSETSCROLLOPTIONS = 69; +enum SQL_API_SQLTABLEPRIVILEGES = 70; +enum SQL_API_SQLDRIVERS = 71; +enum SQL_API_SQLBINDPARAMETER = 72; +enum SQL_API_LOADBYORDINAL = 199; + +enum SQL_ASYNC_ENABLE = 4; +enum SQL_ASYNC_ENABLE_OFF = 0UL; +enum SQL_ASYNC_ENABLE_ON = 1UL; +enum SQL_ASYNC_ENABLE_DEFAULT = SQL_ASYNC_ENABLE_OFF; + +enum SQL_ATTR_CONNECTION_DEAD = 1209; +enum SQL_ATTR_READONLY = 0; +enum SQL_ATTR_READWRITE_UNKNOWN = 2; +enum SQL_ATTR_WRITE = 1; + +enum SQL_AUTOCOMMIT = 102; +enum SQL_AUTOCOMMIT_OFF = 0UL; +enum SQL_AUTOCOMMIT_ON = 1UL; +enum SQL_AUTOCOMMIT_DEFAULT = SQL_AUTOCOMMIT_ON; +enum SQL_BEST_ROWID = 1; +enum SQL_BIGINT = -5; +enum SQL_BINARY = -2; +enum SQL_BIND_BY_COLUMN = 0UL; +enum SQL_BIND_TYPE = 5; +enum SQL_BIND_TYPE_DEFAULT = SQL_BIND_BY_COLUMN; +enum SQL_BIT = -7; + +enum SQL_BOOKMARK_PERSISTENCE = 82; + +// for BOOKMARK_PERSISTENCE +enum SQL_BP_CLOSE = 1; +enum SQL_BP_DELETE = 2; +enum SQL_BP_DROP = 4; +enum SQL_BP_TRANSACTION = 8; +enum SQL_BP_UPDATE = 16; +enum SQL_BP_OTHER_HSTMT = 32; +enum SQL_BP_SCROLL = 64; + +enum SQL_C_BINARY = SQL_BINARY; +enum SQL_C_BIT = SQL_BIT; +enum SQL_C_CHAR = SQL_CHAR; +enum SQL_C_DATE = SQL_DATE; +enum SQL_C_DOUBLE = SQL_DOUBLE; +enum SQL_C_FLOAT = SQL_REAL; +enum SQL_C_LONG = SQL_INTEGER; +enum SQL_C_SHORT = SQL_SMALLINT; +enum SQL_C_SLONG = SQL_C_LONG+SQL_SIGNED_OFFSET; +enum SQL_C_SSHORT = SQL_C_SHORT+SQL_SIGNED_OFFSET; +enum SQL_C_STINYINT = SQL_TINYINT+SQL_SIGNED_OFFSET; +enum SQL_C_TIME = SQL_TIME; +enum SQL_C_TIMESTAMP = SQL_TIMESTAMP; +enum SQL_C_TINYINT = SQL_TINYINT; +enum SQL_C_ULONG = SQL_C_LONG+SQL_UNSIGNED_OFFSET; +enum SQL_C_USHORT = SQL_C_SHORT+SQL_UNSIGNED_OFFSET; +enum SQL_C_UTINYINT = SQL_TINYINT+SQL_UNSIGNED_OFFSET; +enum SQL_C_BOOKMARK = SQL_C_ULONG; +enum SQL_C_DEFAULT = 99; + +enum SQL_CASCADE = 0; +enum SQL_CB_NON_NULL = 1; +enum SQL_CB_NULL = 0; +deprecated { +enum SQL_CC_CLOSE = SQL_CB_CLOSE;/* deprecated */ +enum SQL_CC_DELETE = SQL_CB_DELETE;/* deprecated */ +enum SQL_CC_PRESERVE = SQL_CB_PRESERVE;/* deprecated */ +} +enum SQL_CD_FALSE = 0L; +enum SQL_CD_TRUE = 1L; + +enum SQL_CN_ANY = 2; +enum SQL_CN_DIFFERENT = 1; +enum SQL_CN_NONE = 0; + +enum SQL_COLUMN_ALIAS = 87; + +enum SQL_COLUMN_COUNT = 0; +enum SQL_COLUMN_NAME = 1; +enum SQL_COLUMN_DISPLAY_SIZE = 6; +enum SQL_COLUMN_LABEL = 18; +enum SQL_COLUMN_LENGTH = 3; +enum SQL_COLUMN_MONEY = 9; +enum SQL_COLUMN_NULLABLE = 7; +enum SQL_COLUMN_OWNER_NAME = 16; +enum SQL_COLUMN_PRECISION = 4; +enum SQL_COLUMN_QUALIFIER_NAME = 17; +enum SQL_COLUMN_SCALE = 5; +enum SQL_COLUMN_UNSIGNED = 8; +enum SQL_COLUMN_UPDATABLE = 10; +enum SQL_COLUMN_AUTO_INCREMENT = 11; +enum SQL_COLUMN_CASE_SENSITIVE = 12; +enum SQL_COLUMN_SEARCHABLE = 13; +enum SQL_COLUMN_TYPE = 2; +enum SQL_COLUMN_TYPE_NAME = 14; +enum SQL_COLUMN_TABLE_NAME = 15; + +enum SQL_CONCAT_NULL_BEHAVIOR = 22; + +enum SQL_CONCUR_READ_ONLY = 1; +enum SQL_CONCUR_DEFAULT = SQL_CONCUR_READ_ONLY; +enum SQL_CONCUR_LOCK = 2; +enum SQL_CONCUR_ROWVER = 3; +enum SQL_CONCUR_TIMESTAMP = SQL_CONCUR_ROWVER;/* deprecated */ +enum SQL_CONCUR_VALUES = 4; + +enum SQL_CONCURRENCY = 7; +enum SQL_CONVERT_BIGINT = 53; +enum SQL_CONVERT_BINARY = 54; +enum SQL_CONVERT_BIT = 55; +enum SQL_CONVERT_CHAR = 56; +enum SQL_CONVERT_DATE = 57; +enum SQL_CONVERT_DECIMAL = 58; +enum SQL_CONVERT_DOUBLE = 59; +enum SQL_CONVERT_FLOAT = 60; +enum SQL_CONVERT_FUNCTIONS = 48; +enum SQL_CONVERT_INTEGER = 61; +enum SQL_CONVERT_LONGVARBINARY = 71; +enum SQL_CONVERT_LONGVARCHAR = 62; +enum SQL_CONVERT_NUMERIC = 63; +enum SQL_CONVERT_REAL = 64; +enum SQL_CONVERT_SMALLINT = 65; +enum SQL_CONVERT_TIME = 66; +enum SQL_CONVERT_TIMESTAMP = 67; +enum SQL_CONVERT_TINYINT = 68; +enum SQL_CONVERT_VARBINARY = 69; +enum SQL_CONVERT_VARCHAR = 70; +enum SQL_CORRELATION_NAME = 74; +enum SQL_CR_CLOSE = SQL_CB_CLOSE;/* deprecated */ +enum SQL_CR_DELETE = SQL_CB_DELETE;/* deprecated */ +enum SQL_CR_PRESERVE = SQL_CB_PRESERVE;/* deprecated */ + +enum : ULONG { + SQL_CUR_USE_IF_NEEDED = 0, + SQL_CUR_USE_ODBC, + SQL_CUR_USE_DRIVER, + SQL_CUR_DEFAULT = SQL_CUR_USE_DRIVER +} + +enum SQL_CURRENT_QUALIFIER = 109; +enum SQL_CURSOR_DYNAMIC = 2UL; +enum SQL_CURSOR_FORWARD_ONLY = 0UL; +enum SQL_CURSOR_KEYSET_DRIVEN = 1UL; +enum SQL_CURSOR_ROLLBACK_BEHAVIOR = 24; +enum SQL_CURSOR_STATIC = 3UL; +enum SQL_CURSOR_TYPE = 6; +enum SQL_CURSOR_TYPE_DEFAULT = SQL_CURSOR_FORWARD_ONLY; + +enum SQL_CV_CASCADED = 0x00000004L; +enum SQL_CV_CHECK_OPTION = 0x00000002L; +enum SQL_CV_CREATE_VIEW = 0x00000001L; +enum SQL_CV_LOCAL = 0x00000008L; +enum SQL_CVT_BIGINT = 0x00004000L; +enum SQL_CVT_BINARY = 0x00000400L; +enum SQL_CVT_BIT = 0x00001000L; +enum SQL_CVT_CHAR = 0x00000001L; +enum SQL_CVT_DATE = 0x00008000L; +enum SQL_CVT_DECIMAL = 0x00000004L; +enum SQL_CVT_DOUBLE = 0x00000080L; +enum SQL_CVT_FLOAT = 0x00000020L; +enum SQL_CVT_INTEGER = 0x00000008L; +enum SQL_CVT_LONGVARBINARY = 0x00040000L; +enum SQL_CVT_LONGVARCHAR = 0x00000200L; +enum SQL_CVT_NUMERIC = 0x00000002L; +enum SQL_CVT_REAL = 0x00000040L; +enum SQL_CVT_SMALLINT = 0x00000010L; +enum SQL_CVT_TIME = 0x00010000L; +enum SQL_CVT_TIMESTAMP = 0x00020000L; +enum SQL_CVT_TINYINT = 0x00002000L; +enum SQL_CVT_VARBINARY = 0x00000800L; +enum SQL_CVT_VARCHAR = 0x00000100L; +enum SQL_DATABASE_NAME = 16;/* deprecated */ + +enum SQL_DEFAULT_PARAM = -5; +enum SQL_DELETE = 3; + +enum SQL_DRIVER_COMPLETE = 1; +enum SQL_DRIVER_COMPLETE_REQUIRED = 3; +enum SQL_DRIVER_HDBC = 3; +enum SQL_DRIVER_HENV = 4; +enum SQL_DRIVER_HLIB = 76; +enum SQL_DRIVER_HSTMT = 5; +enum SQL_DRIVER_NAME = 6; +enum SQL_DRIVER_NOPROMPT = 0; +enum SQL_DRIVER_ODBC_VER = 77; +enum SQL_DRIVER_PROMPT = 2; +enum SQL_DRIVER_VER = 7; + +enum SQL_DTC_ENLIST_EXPENSIVE = 1; +enum SQL_DTC_UNENLIST_EXPENSIVE = 2; +enum SQL_DTC_TRANSITION_COST = 1750; +enum SQL_ENSURE = 1; +enum SQL_ENTIRE_ROWSET = 0; +enum SQL_EXPRESSIONS_IN_ORDERBY = 27; +enum SQL_FD_FETCH_BOOKMARK = 128; +enum SQL_FD_FETCH_PREV = SQL_FD_FETCH_PRIOR;/* deprecated */ +enum SQL_FD_FETCH_RESUME = 64; +enum SQL_FETCH_BOOKMARK = 8; +enum SQL_FETCH_PREV = SQL_FETCH_PRIOR;/* deprecated */ +enum SQL_FETCH_RESUME = 7;/* deprecated */ + +enum SQL_FILE_NOT_SUPPORTED = 0x0000; +enum SQL_FILE_TABLE = 0x0001; +enum SQL_FILE_QUALIFIER = 0x0002; +enum SQL_FILE_CATALOG = SQL_FILE_QUALIFIER; +enum SQL_FILE_USAGE = 84; + +enum SQL_FN_CVT_CONVERT = 0x00000001L; +enum SQL_FN_NUM_ABS = 0x00000001L; +enum SQL_FN_NUM_ACOS = 0x00000002L; +enum SQL_FN_NUM_ASIN = 0x00000004L; +enum SQL_FN_NUM_ATAN = 0x00000008L; +enum SQL_FN_NUM_ATAN2 = 0x00000010L; +enum SQL_FN_NUM_CEILING = 0x00000020L; +enum SQL_FN_NUM_COS = 0x00000040L; +enum SQL_FN_NUM_COT = 0x00000080L; +enum SQL_FN_NUM_DEGREES = 0x00040000L; +enum SQL_FN_NUM_EXP = 0x00000100L; +enum SQL_FN_NUM_FLOOR = 0x00000200L; +enum SQL_FN_NUM_LOG = 0x00000400L; +enum SQL_FN_NUM_LOG10 = 0x00080000L; +enum SQL_FN_NUM_MOD = 0x00000800L; +enum SQL_FN_NUM_PI = 0x00010000L; +enum SQL_FN_NUM_POWER = 0x00100000L; +enum SQL_FN_NUM_RADIANS = 0x00200000L; +enum SQL_FN_NUM_RAND = 0x00020000L; +enum SQL_FN_NUM_ROUND = 0x00400000L; +enum SQL_FN_NUM_SIGN = 0x00001000L; +enum SQL_FN_NUM_SIN = 0x00002000L; +enum SQL_FN_NUM_SQRT = 0x00004000L; +enum SQL_FN_NUM_TAN = 0x00008000L; +enum SQL_FN_NUM_TRUNCATE = 0x00800000L; +enum SQL_FN_STR_ASCII = 0x00002000L; +enum SQL_FN_STR_CHAR = 0x00004000L; +enum SQL_FN_STR_CONCAT = 0x00000001L; +enum SQL_FN_STR_DIFFERENCE = 0x00008000L; +enum SQL_FN_STR_INSERT = 0x00000002L; +enum SQL_FN_STR_LCASE = 0x00000040L; +enum SQL_FN_STR_LEFT = 0x00000004L; +enum SQL_FN_STR_LENGTH = 0x00000010L; +enum SQL_FN_STR_LOCATE = 0x00000020L; +enum SQL_FN_STR_LOCATE_2 = 0x00010000L; +enum SQL_FN_STR_LTRIM = 0x00000008L; +enum SQL_FN_STR_REPEAT = 0x00000080L; +enum SQL_FN_STR_REPLACE = 0x00000100L; +enum SQL_FN_STR_RIGHT = 0x00000200L; +enum SQL_FN_STR_RTRIM = 0x00000400L; +enum SQL_FN_STR_SOUNDEX = 0x00020000L; +enum SQL_FN_STR_SPACE = 0x00040000L; +enum SQL_FN_STR_SUBSTRING = 0x00000800L; +enum SQL_FN_STR_UCASE = 0x00001000L; +enum SQL_FN_SYS_DBNAME = 0x00000002L; +enum SQL_FN_SYS_IFNULL = 0x00000004L; +enum SQL_FN_SYS_USERNAME = 0x00000001L; +enum SQL_FN_TD_CURDATE = 0x00000002L; +enum SQL_FN_TD_CURTIME = 0x00000200L; +enum SQL_FN_TD_DAYNAME = 0x00008000L; +enum SQL_FN_TD_DAYOFMONTH = 0x00000004L; +enum SQL_FN_TD_DAYOFWEEK = 0x00000008L; +enum SQL_FN_TD_DAYOFYEAR = 0x00000010L; +enum SQL_FN_TD_HOUR = 0x00000400L; +enum SQL_FN_TD_MINUTE = 0x00000800L; +enum SQL_FN_TD_MONTH = 0x00000020L; +enum SQL_FN_TD_MONTHNAME = 0x00010000L; +enum SQL_FN_TD_NOW = 0x00000001L; +enum SQL_FN_TD_QUARTER = 0x00000040L; +enum SQL_FN_TD_SECOND = 0x00001000L; +enum SQL_FN_TD_TIMESTAMPADD = 0x00002000L; +enum SQL_FN_TD_TIMESTAMPDIFF = 0x00004000L; +enum SQL_FN_TD_WEEK = 0x00000080L; +enum SQL_FN_TD_YEAR = 0x00000100L; +enum SQL_FN_TSI_DAY = 0x00000010L; +enum SQL_FN_TSI_FRAC_SECOND = 0x00000001L; +enum SQL_FN_TSI_HOUR = 0x00000008L; +enum SQL_FN_TSI_MINUTE = 0x00000004L; +enum SQL_FN_TSI_MONTH = 0x00000040L; +enum SQL_FN_TSI_QUARTER = 0x00000080L; +enum SQL_FN_TSI_SECOND = 0x00000002L; +enum SQL_FN_TSI_WEEK = 0x00000020L; +enum SQL_FN_TSI_YEAR = 0x00000100L; +enum SQL_GB_GROUP_BY_CONTAINS_SELECT = 2; +enum SQL_GB_GROUP_BY_EQUALS_SELECT = 1; +enum SQL_GB_NO_RELATION = 3; +enum SQL_GB_NOT_SUPPORTED = 0; +enum SQL_GD_BLOCK = 4; +enum SQL_GD_BOUND = 8; +enum SQL_GET_BOOKMARK = 13; +enum SQL_GROUP_BY = 88; +enum SQL_IGNORE = -6; +enum SQL_INFO_FIRST = 0; +enum SQL_KEYSET_SIZE = 8; +enum SQL_KEYSET_SIZE_DEFAULT = 0UL; +enum SQL_KEYWORDS = 89; +enum SQL_LCK_EXCLUSIVE = 2; +enum SQL_LCK_NO_CHANGE = 1; +enum SQL_LCK_UNLOCK = 4; + +enum SQL_LEN_BINARY_ATTR_OFFSET = -100; +enum SQL_LEN_DATA_AT_EXEC_OFFSET = -100; +//MACRO #define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET) +//MACRO #define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET) + +enum SQL_LIKE_ESCAPE_CLAUSE = 113; +enum SQL_LIKE_ONLY = 1; +enum SQL_LOCK_EXCLUSIVE = 1; +enum SQL_LOCK_NO_CHANGE = 0; +enum SQL_LOCK_TYPES = 78; +enum SQL_LOCK_UNLOCK = 2; +enum SQL_LOGIN_TIMEOUT = 103; +enum SQL_LOGIN_TIMEOUT_DEFAULT = 15UL; +enum SQL_LONGVARBINARY = -4; +enum SQL_LONGVARCHAR = -1; +enum SQL_MAX_BINARY_LITERAL_LEN = 112; +enum SQL_MAX_CHAR_LITERAL_LEN = 108; +enum SQL_MAX_DSN_LENGTH = 32; +enum SQL_MAX_LENGTH = 3; +enum SQL_MAX_LENGTH_DEFAULT = 0UL; +enum SQL_MAX_OPTION_STRING_LENGTH = 256; +enum SQL_MAX_OWNER_NAME_LEN = 32; +enum SQL_MAX_PROCEDURE_NAME_LEN = 33; +enum SQL_MAX_QUALIFIER_NAME_LEN = 34; +enum SQL_MAX_ROW_SIZE_INCLUDES_LONG = 103; +enum SQL_MAX_ROWS = 1; +enum SQL_MAX_ROWS_DEFAULT = 0UL; + +enum SQL_MODE_READ_WRITE = 0UL; +enum SQL_MODE_READ_ONLY = 1UL; +enum SQL_MODE_DEFAULT = SQL_MODE_READ_WRITE; + +enum SQL_MULT_RESULT_SETS = 36; +enum SQL_MULTIPLE_ACTIVE_TXN = 37; +enum SQL_NC_END = 0x0004; +enum SQL_NC_START = 0x0002; +enum SQL_NEED_LONG_DATA_LEN = 111; +enum SQL_NNC_NON_NULL = 0x0001; +enum SQL_NNC_NULL = 0x0000; +enum SQL_NO_TOTAL = -4; +enum SQL_NON_NULLABLE_COLUMNS = 75; + +enum SQL_NOSCAN_OFF = 0UL; +enum SQL_NOSCAN_ON = 1UL; +enum SQL_NOSCAN = 2; +enum SQL_NOSCAN_DEFAULT = SQL_NOSCAN_OFF; + +enum SQL_NUMERIC_FUNCTIONS = 49; +enum SQL_OAC_LEVEL1 = 0x0001; +enum SQL_OAC_LEVEL2 = 0x0002; +enum SQL_OAC_NONE = 0x0000; +enum SQL_ODBC_API_CONFORMANCE = 9; +enum SQL_ODBC_CURSORS = 110; +enum SQL_ODBC_SAG_CLI_CONFORMANCE = 12; +enum SQL_ODBC_SQL_CONFORMANCE = 15; +enum SQL_ODBC_SQL_OPT_IEF = 73; +enum SQL_ODBC_VER = 10; +enum SQL_OPT_TRACE = 104; + +enum SQL_OPT_TRACE_FILE_DEFAULT = "\\SQL.LOG"; +enum SQL_OPT_TRACE_OFF = 0UL; +enum SQL_OPT_TRACE_DEFAULT = SQL_OPT_TRACE_OFF; +enum SQL_OPT_TRACE_ON = 1UL; + +enum SQL_OPT_TRACEFILE = 105; +enum SQL_OSC_CORE = 1; +enum SQL_OSC_EXTENDED = 2; +enum SQL_OSC_MINIMUM = 0; +enum SQL_OSCC_COMPLIANT = 1; +enum SQL_OSCC_NOT_COMPLIANT = 0; +enum SQL_OU_DML_STATEMENTS = 1; +enum SQL_OU_INDEX_DEFINITION = 8; +enum SQL_OU_PRIVILEGE_DEFINITION = 16; +enum SQL_OU_PROCEDURE_INVOCATION = 2; +enum SQL_OU_TABLE_DEFINITION = 4; +enum SQL_OUTER_JOINS = 38; +enum SQL_OWNER_TERM = 39; +enum SQL_OWNER_USAGE = 91; +enum SQL_PACKET_SIZE = 112; +enum SQL_PARAM_INPUT = 1; +enum SQL_PARAM_INPUT_OUTPUT = 2; +enum SQL_PARAM_OUTPUT = 4; +enum SQL_PARAM_TYPE_DEFAULT = SQL_PARAM_INPUT_OUTPUT; +enum SQL_PARAM_TYPE_UNKNOWN = 0; +enum SQL_PC_NOT_PSEUDO = 1; +enum SQL_POS_ADD = 16; +enum SQL_POS_DELETE = 8; +enum SQL_POS_OPERATIONS = 79; +enum SQL_POS_POSITION = 1; +enum SQL_POS_REFRESH = 2; +enum SQL_POS_UPDATE = 4; +enum SQL_POSITION = 0; +enum SQL_POSITIONED_STATEMENTS = 80; +enum SQL_PROCEDURE_TERM = 40; +enum SQL_PROCEDURES = 21; +enum SQL_PS_POSITIONED_DELETE = 1; +enum SQL_PS_POSITIONED_UPDATE = 2; +enum SQL_PS_SELECT_FOR_UPDATE = 4; +enum SQL_PT_FUNCTION = 2; +enum SQL_PT_PROCEDURE = 1; +enum SQL_PT_UNKNOWN = 0; +enum SQL_QL_END = 0x0002; +enum SQL_QL_START = 0x0001; +enum SQL_QU_DML_STATEMENTS = 1; +enum SQL_QU_INDEX_DEFINITION = 8; +enum SQL_QU_PRIVILEGE_DEFINITION = 16; +enum SQL_QU_PROCEDURE_INVOCATION = 2; +enum SQL_QU_TABLE_DEFINITION = 4; +enum SQL_QUALIFIER_LOCATION = 114; +enum SQL_QUALIFIER_NAME_SEPARATOR = 41; +enum SQL_QUALIFIER_TERM = 42; +enum SQL_QUALIFIER_USAGE = 92; +enum SQL_QUERY_TIMEOUT = 0; +enum SQL_QUERY_TIMEOUT_DEFAULT = 0UL; +enum SQL_QUICK = 0; +enum SQL_QUIET_MODE = 111; +enum SQL_QUOTED_IDENTIFIER_CASE = 93; + +enum SQL_RD_OFF = 0UL; +enum SQL_RD_ON = 1UL; +enum SQL_RD_DEFAULT = SQL_RD_ON; + +enum SQL_REFRESH = 1; +enum SQL_RESTRICT = 1; +enum SQL_RESULT_COL = 3; +enum SQL_RETRIEVE_DATA = 11; +enum SQL_RETURN_VALUE = 5; +enum SQL_ROW_ADDED = 4; +enum SQL_ROW_DELETED = 1; +enum SQL_ROW_ERROR = 5; +enum SQL_ROW_NOROW = 3; +enum SQL_ROW_NUMBER = 14; +enum SQL_ROW_SUCCESS = 0; +enum SQL_ROW_UPDATED = 2; +enum SQL_ROW_UPDATES = 11; +enum SQL_ROWSET_SIZE = 9; +enum SQL_ROWSET_SIZE_DEFAULT = 1UL; +enum SQL_ROWVER = 2; +enum SQL_SC_NON_UNIQUE = 0UL; +enum SQL_SC_TRY_UNIQUE = 1UL; +enum SQL_SC_UNIQUE = 2UL; +enum SQL_SCCO_OPT_TIMESTAMP = SQL_SCCO_OPT_ROWVER;/* deprecated */ +enum SQL_SCROLL_DYNAMIC = -2L;/* deprecated */ +enum SQL_SCROLL_FORWARD_ONLY = 0L;/* deprecated */ +enum SQL_SCROLL_KEYSET_DRIVEN = -1L;/* deprecated */ +enum SQL_SCROLL_OPTIONS = 44; +enum SQL_SCROLL_STATIC = -3L;/* deprecated */ +enum SQL_SEARCHABLE = 3; +enum SQL_SET_NULL = 2; +enum SQL_SETPARAM_VALUE_MAX = -1L; +enum SQL_SETPOS_MAX_LOCK_VALUE = SQL_LOCK_UNLOCK; +enum SQL_SETPOS_MAX_OPTION_VALUE = SQL_ADD; +enum SQL_SIMULATE_CURSOR = 10; +enum SQL_SO_DYNAMIC = 4; +enum SQL_SO_FORWARD_ONLY = 1; +enum SQL_SO_KEYSET_DRIVEN = 2; +enum SQL_SO_MIXED = 8; +enum SQL_SO_STATIC = 16; +enum SQL_SQ_COMPARISON = 1; +enum SQL_SQ_CORRELATED_SUBQUERIES = 16; +enum SQL_SQ_EXISTS = 2; +enum SQL_SQ_IN = 4; +enum SQL_SQ_QUANTIFIED = 8; +enum SQL_SQLSTATE_SIZE = 5; +enum SQL_SS_ADDITIONS = 1; +enum SQL_SS_DELETIONS = 2; +enum SQL_SS_UPDATES = 4; +enum SQL_STATIC_SENSITIVITY = 83; +enum SQL_STRING_FUNCTIONS = 50; +enum SQL_SUBQUERIES = 95; +enum SQL_SYSTEM_FUNCTIONS = 51; +enum SQL_TABLE_STAT = 0; +enum SQL_TABLE_TERM = 45; +enum SQL_TIMEDATE_ADD_INTERVALS = 109; +enum SQL_TIMEDATE_DIFF_INTERVALS = 110; +enum SQL_TIMEDATE_FUNCTIONS = 52; +enum SQL_TRANSLATE_DLL = 106; +enum SQL_TRANSLATE_OPTION = 107; +enum SQL_TXN_ISOLATION = 108; +enum SQL_TXN_VERSIONING = 16; +enum SQL_TYPE_NULL = 0; +enum SQL_U_UNION = 1; +enum SQL_U_UNION_ALL = 2; + +enum SQL_UB_OFF = 0UL; +enum SQL_UB_DEFAULT = SQL_UB_OFF; +enum SQL_UB_ON = 1UL; + +enum SQL_UNION = 96; +enum SQL_UNSEARCHABLE = 0; +enum SQL_UPDATE = 2; +enum SQL_USE_BOOKMARKS = 12; +enum SQL_VARBINARY = -3; + +enum SQL_COLATT_OPT_MAX = SQL_COLUMN_LABEL; +enum SQL_COLATT_OPT_MIN = SQL_COLUMN_COUNT; +enum SQL_PRED_SEARCHABLE = SQL_SEARCHABLE; + +//MACRO #define SQL_POSITION_TO(s, r) SQLSetPos(s, r, SQL_POSITION, SQL_LOCK_NO_CHANGE) + +//MACRO #define SQL_LOCK_RECORD(s, r, l) SQLSetPos(s, r, SQL_POSITION, l) + +//MACRO #define SQL_REFRESH_RECORD(s, r, l) SQLSetPos(s, r, SQL_REFRESH, l) + +//MACRO #define SQL_UPDATE_RECORD(s, r) SQLSetPos(s, r, SQL_UPDATE, SQL_LOCK_NO_CHANGE) + +//MACRO #define SQL_DELETE_RECORD(s, r) SQLSetPos(s, r, SQL_DELETE, SQL_LOCK_NO_CHANGE) + +//MACRO #define SQL_ADD_RECORD(s, r) SQLSetPos(s, r, SQL_ADD, SQL_LOCK_NO_CHANGE) + + +static if (ODBCVER < 0x0300) +{ +enum SQL_CONNECT_OPT_DRVR_START = 1000; +enum SQL_CONN_OPT_MAX = SQL_PACKET_SIZE; +enum SQL_CONN_OPT_MIN = SQL_ACCESS_MODE; +enum SQL_STMT_OPT_MAX = SQL_ROW_NUMBER; +enum SQL_STMT_OPT_MIN = SQL_QUERY_TIMEOUT; +enum SQL_TYPE_DRIVER_START = SQL_INTERVAL_YEAR; +enum SQL_TYPE_DRIVER_END = SQL_UNICODE_LONGVARCHAR; +enum SQL_TYPE_MIN = SQL_BIT; +enum SQL_TYPE_MAX = SQL_VARCHAR; +} + +static if (ODBCVER < 0x0300) +{ +enum SQL_NO_DATA_FOUND = 100; +enum SQL_INTERVAL_YEAR = -80; +enum SQL_INTERVAL_MONTH = -81; +enum SQL_INTERVAL_YEAR_TO_MONTH = -82; +enum SQL_INTERVAL_DAY = -83; +enum SQL_INTERVAL_HOUR = -84; +enum SQL_INTERVAL_MINUTE = -85; +enum SQL_INTERVAL_SECOND = -86; +enum SQL_INTERVAL_DAY_TO_HOUR = -87; +enum SQL_INTERVAL_DAY_TO_MINUTE = -88; +enum SQL_INTERVAL_DAY_TO_SECOND = -89; +enum SQL_INTERVAL_HOUR_TO_MINUTE = -90; +enum SQL_INTERVAL_HOUR_TO_SECOND = -91; +enum SQL_INTERVAL_MINUTE_TO_SECOND = -92; +} +else +{ +enum SQL_NO_DATA_FOUND = SQL_NO_DATA; +enum SQL_CODE_YEAR = 1; +enum SQL_CODE_MONTH = 2; +enum SQL_CODE_DAY = 3; +enum SQL_CODE_HOUR = 4; +enum SQL_CODE_MINUTE = 5; +enum SQL_CODE_SECOND = 6; +enum SQL_CODE_YEAR_TO_MONTH = 7; +enum SQL_CODE_DAY_TO_HOUR = 8; +enum SQL_CODE_DAY_TO_MINUTE = 9; +enum SQL_CODE_DAY_TO_SECOND = 10; +enum SQL_CODE_HOUR_TO_MINUTE = 11; +enum SQL_CODE_HOUR_TO_SECOND = 12; +enum SQL_CODE_MINUTE_TO_SECOND = 13; +enum SQL_INTERVAL_YEAR = 100 + SQL_CODE_YEAR; +enum SQL_INTERVAL_MONTH = 100 + SQL_CODE_MONTH; +enum SQL_INTERVAL_DAY = 100 + SQL_CODE_DAY; +enum SQL_INTERVAL_HOUR = 100 + SQL_CODE_HOUR; +enum SQL_INTERVAL_MINUTE = 100 + SQL_CODE_MINUTE; +enum SQL_INTERVAL_SECOND = 100 + SQL_CODE_SECOND; +enum SQL_INTERVAL_YEAR_TO_MONTH = 100 + SQL_CODE_YEAR_TO_MONTH; +enum SQL_INTERVAL_DAY_TO_HOUR = 100 + SQL_CODE_DAY_TO_HOUR; +enum SQL_INTERVAL_DAY_TO_MINUTE = 100 + SQL_CODE_DAY_TO_MINUTE; +enum SQL_INTERVAL_DAY_TO_SECOND = 100 + SQL_CODE_DAY_TO_SECOND; +enum SQL_INTERVAL_HOUR_TO_MINUTE = 100 + SQL_CODE_HOUR_TO_MINUTE; +enum SQL_INTERVAL_HOUR_TO_SECOND = 100 + SQL_CODE_HOUR_TO_SECOND; +enum SQL_INTERVAL_MINUTE_TO_SECOND = 100 + SQL_CODE_MINUTE_TO_SECOND; +}//[Yes] #endif + + +static if ((ODBCVER >= 0x0201) && (ODBCVER < 0x0300)) +{ +enum SQL_OJ_CAPABILITIES = 65003; +} + +static if (ODBCVER >= 0x0250) +{ +enum SQL_NO_ACTION = 3; +enum SQL_SET_DEFAULT = 4; +} + +static if (ODBCVER >= 0x0300) +{ +enum SQL_ACTIVE_ENVIRONMENTS = 116; +enum SQL_AD_ADD_CONSTRAINT_DEFERRABLE = 0x00000080L; +enum SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L; +enum SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L; +enum SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE = 0x00000100L; +enum SQL_AD_ADD_DOMAIN_CONSTRAINT = 0x00000002L; +enum SQL_AD_ADD_DOMAIN_DEFAULT = 0x00000008L; +enum SQL_AD_CONSTRAINT_NAME_DEFINITION = 0x00000001L; +enum SQL_AD_DROP_DOMAIN_CONSTRAINT = 0x00000004L; +enum SQL_AD_DROP_DOMAIN_DEFAULT = 0x00000010L; +enum SQL_AF_ALL = 0x00000040L; +enum SQL_AF_AVG = 0x00000001L; +enum SQL_AF_COUNT = 0x00000002L; +enum SQL_AF_DISTINCT = 0x00000020L; +enum SQL_AF_MAX = 0x00000004L; +enum SQL_AF_MIN = 0x00000008L; +enum SQL_AF_SUM = 0x00000010L; +enum SQL_AGGREGATE_FUNCTIONS = 169; +enum SQL_ALL_CATALOGS = "%"; +enum SQL_ALL_SCHEMAS = "%"; +enum SQL_ALL_TABLE_TYPES = "%"; +enum SQL_ALTER_DOMAIN = 117; +enum SQL_AM_CONNECTION = 1; +enum SQL_AM_NONE = 0; +enum SQL_AM_STATEMENT = 2; +enum SQL_API_ODBC3_ALL_FUNCTIONS = 999; +enum SQL_API_ODBC3_ALL_FUNCTIONS_SIZE = 250; +enum SQL_API_SQLALLOCHANDLESTD = 73; +enum SQL_API_SQLBULKOPERATIONS = 24; +enum SQL_ASYNC_MODE = 10021; +enum SQL_AT_ADD_COLUMN_COLLATION = 0x00000080L; +enum SQL_AT_ADD_COLUMN_DEFAULT = 0x00000040L; +enum SQL_AT_ADD_COLUMN_SINGLE = 0x00000020L; +enum SQL_AT_ADD_TABLE_CONSTRAINT = 0x00001000L; +enum SQL_AT_CONSTRAINT_DEFERRABLE = 0x00040000L; +enum SQL_AT_CONSTRAINT_INITIALLY_DEFERRED = 0x00010000L; +enum SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00020000L; +enum SQL_AT_CONSTRAINT_NAME_DEFINITION = 0x00008000L; +enum SQL_AT_CONSTRAINT_NON_DEFERRABLE = 0x00080000L; +enum SQL_AT_DROP_COLUMN_CASCADE = 0x00000400L; +enum SQL_AT_DROP_COLUMN_DEFAULT = 0x00000200L; +enum SQL_AT_DROP_COLUMN_RESTRICT = 0x00000800L; +enum SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE = 0x00002000L; +enum SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = 0x00004000L; +enum SQL_AT_SET_COLUMN_DEFAULT = 0x00000100L; +enum SQL_ATTR_ACCESS_MODE = SQL_ACCESS_MODE; +enum SQL_ATTR_ASYNC_ENABLE = 4; +enum SQL_ATTR_AUTOCOMMIT = SQL_AUTOCOMMIT; +enum SQL_ATTR_CONCURRENCY = SQL_CONCURRENCY; +enum SQL_ATTR_CONNECTION_POOLING = 201; +enum SQL_ATTR_CONNECTION_TIMEOUT = 113; +enum SQL_ATTR_CP_MATCH = 202; +enum SQL_ATTR_CURRENT_CATALOG = SQL_CURRENT_QUALIFIER; +enum SQL_ATTR_CURSOR_TYPE = SQL_CURSOR_TYPE; +enum SQL_ATTR_DISCONNECT_BEHAVIOR = 114; +enum SQL_ATTR_ENABLE_AUTO_IPD = 15; +enum SQL_ATTR_ENLIST_IN_DTC = 1207; +enum SQL_ATTR_ENLIST_IN_XA = 1208; +enum SQL_ATTR_FETCH_BOOKMARK_PTR = 16; +enum SQL_ATTR_KEYSET_SIZE = SQL_KEYSET_SIZE; +enum SQL_ATTR_LOGIN_TIMEOUT = SQL_LOGIN_TIMEOUT; +enum SQL_ATTR_MAX_LENGTH = SQL_MAX_LENGTH; +enum SQL_ATTR_MAX_ROWS = SQL_MAX_ROWS; +enum SQL_ATTR_NOSCAN = SQL_NOSCAN; +enum SQL_ATTR_ODBC_CURSORS = SQL_ODBC_CURSORS; +enum SQL_ATTR_ODBC_VERSION = 200; +enum SQL_ATTR_PACKET_SIZE = SQL_PACKET_SIZE; +enum SQL_ATTR_PARAM_BIND_OFFSET_PTR = 17; +enum SQL_ATTR_PARAM_BIND_TYPE = 18; +enum SQL_ATTR_PARAM_OPERATION_PTR = 19; +enum SQL_ATTR_PARAM_STATUS_PTR = 20; +enum SQL_ATTR_PARAMS_PROCESSED_PTR = 21; +enum SQL_ATTR_PARAMSET_SIZE = 22; +enum SQL_ATTR_QUERY_TIMEOUT = SQL_QUERY_TIMEOUT; +enum SQL_ATTR_QUIET_MODE = SQL_QUIET_MODE; +enum SQL_ATTR_RETRIEVE_DATA = SQL_RETRIEVE_DATA; +enum SQL_ATTR_ROW_ARRAY_SIZE = 27; +enum SQL_ATTR_ROW_BIND_OFFSET_PTR = 23; +enum SQL_ATTR_ROW_BIND_TYPE = SQL_BIND_TYPE; +enum SQL_ATTR_ROW_NUMBER = SQL_ROW_NUMBER; +enum SQL_ATTR_ROW_OPERATION_PTR = 24; +enum SQL_ATTR_ROW_STATUS_PTR = 25; +enum SQL_ATTR_ROWS_FETCHED_PTR = 26; +enum SQL_ATTR_SIMULATE_CURSOR = SQL_SIMULATE_CURSOR; +enum SQL_ATTR_TRACE = SQL_OPT_TRACE; +enum SQL_ATTR_TRACEFILE = SQL_OPT_TRACEFILE; +enum SQL_ATTR_TRANSLATE_LIB = SQL_TRANSLATE_DLL; +enum SQL_ATTR_TRANSLATE_OPTION = SQL_TRANSLATE_OPTION; +enum SQL_ATTR_TXN_ISOLATION = SQL_TXN_ISOLATION; +enum SQL_ATTR_USE_BOOKMARKS = SQL_USE_BOOKMARKS; +enum SQL_BATCH_ROW_COUNT = 120; +enum SQL_BATCH_SUPPORT = 121; +enum SQL_BRC_EXPLICIT = 0x0000002; +enum SQL_BRC_PROCEDURES = 0x0000001; +enum SQL_BRC_ROLLED_UP = 0x0000004; +enum SQL_BS_ROW_COUNT_EXPLICIT = 0x00000002L; +enum SQL_BS_ROW_COUNT_PROC = 0x00000008L; +enum SQL_BS_SELECT_EXPLICIT = 0x00000001L; +enum SQL_BS_SELECT_PROC = 0x00000004L; +enum SQL_C_INTERVAL_DAY = SQL_INTERVAL_DAY; +enum SQL_C_INTERVAL_DAY_TO_HOUR = SQL_INTERVAL_DAY_TO_HOUR; +enum SQL_C_INTERVAL_DAY_TO_MINUTE = SQL_INTERVAL_DAY_TO_MINUTE; +enum SQL_C_INTERVAL_DAY_TO_SECOND = SQL_INTERVAL_DAY_TO_SECOND; +enum SQL_C_INTERVAL_HOUR = SQL_INTERVAL_HOUR; +enum SQL_C_INTERVAL_HOUR_TO_MINUTE = SQL_INTERVAL_HOUR_TO_MINUTE; +enum SQL_C_INTERVAL_HOUR_TO_SECOND = SQL_INTERVAL_HOUR_TO_SECOND; +enum SQL_C_INTERVAL_MINUTE = SQL_INTERVAL_MINUTE; +enum SQL_C_INTERVAL_MINUTE_TO_SECOND = SQL_INTERVAL_MINUTE_TO_SECOND; +enum SQL_C_INTERVAL_MONTH = SQL_INTERVAL_MONTH; +enum SQL_C_INTERVAL_SECOND = SQL_INTERVAL_SECOND; +enum SQL_C_INTERVAL_YEAR = SQL_INTERVAL_YEAR; +enum SQL_C_INTERVAL_YEAR_TO_MONTH = SQL_INTERVAL_YEAR_TO_MONTH; +enum SQL_C_NUMERIC = SQL_NUMERIC; +enum SQL_C_SBIGINT = SQL_BIGINT+SQL_SIGNED_OFFSET; +enum SQL_C_TYPE_DATE = SQL_TYPE_DATE; +enum SQL_C_TYPE_TIME = SQL_TYPE_TIME; +enum SQL_C_TYPE_TIMESTAMP = SQL_TYPE_TIMESTAMP; +enum SQL_C_UBIGINT = SQL_BIGINT+SQL_UNSIGNED_OFFSET; +enum SQL_C_VARBOOKMARK = SQL_C_BINARY; +enum SQL_CA_CONSTRAINT_DEFERRABLE = 0x00000040L; +enum SQL_CA_CONSTRAINT_INITIALLY_DEFERRED = 0x00000010L; +enum SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000020L; +enum SQL_CA_CONSTRAINT_NON_DEFERRABLE = 0x00000080L; +enum SQL_CA_CREATE_ASSERTION = 0x00000001L; +enum SQL_CA1_ABSOLUTE = 0x00000002L; +enum SQL_CA1_BOOKMARK = 0x00000008L; +enum SQL_CA1_BULK_ADD = 0x00010000L; +enum SQL_CA1_BULK_DELETE_BY_BOOKMARK = 0x00040000L; +enum SQL_CA1_BULK_FETCH_BY_BOOKMARK = 0x00080000L; +enum SQL_CA1_BULK_UPDATE_BY_BOOKMARK = 0x00020000L; +enum SQL_CA1_LOCK_EXCLUSIVE = 0x00000080L; +enum SQL_CA1_LOCK_NO_CHANGE = 0x00000040L; +enum SQL_CA1_LOCK_UNLOCK = 0x00000100L; +enum SQL_CA1_NEXT = 0x00000001L; +enum SQL_CA1_POS_DELETE = 0x00000800L; +enum SQL_CA1_POS_POSITION = 0x00000200L; +enum SQL_CA1_POS_REFRESH = 0x00001000L; +enum SQL_CA1_POS_UPDATE = 0x00000400L; +enum SQL_CA1_POSITIONED_DELETE = 0x00004000L; +enum SQL_CA1_POSITIONED_UPDATE = 0x00002000L; +enum SQL_CA1_RELATIVE = 0x00000004L; +enum SQL_CA1_SELECT_FOR_UPDATE = 0x00008000L; +enum SQL_CA2_CRC_APPROXIMATE = 0x00002000L; +enum SQL_CA2_CRC_EXACT = 0x00001000L; +enum SQL_CA2_LOCK_CONCURRENCY = 0x00000002L; + +enum SQL_CA2_MAX_ROWS_CATALOG = 0x00000800L; +enum SQL_CA2_MAX_ROWS_DELETE = 0x00000200L; +enum SQL_CA2_MAX_ROWS_INSERT = 0x00000100L; +enum SQL_CA2_MAX_ROWS_SELECT = 0x00000080L; +enum SQL_CA2_MAX_ROWS_UPDATE = 0x00000400L; +enum SQL_CA2_MAX_ROWS_AFFECTS_ALL = SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT | + SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG; + +enum SQL_CA2_OPT_ROWVER_CONCURRENCY = 0x00000004L; +enum SQL_CA2_OPT_VALUES_CONCURRENCY = 0x00000008L; +enum SQL_CA2_READ_ONLY_CONCURRENCY = 0x00000001L; +enum SQL_CA2_SENSITIVITY_ADDITIONS = 0x00000010L; +enum SQL_CA2_SENSITIVITY_DELETIONS = 0x00000020L; +enum SQL_CA2_SENSITIVITY_UPDATES = 0x00000040L; +enum SQL_CA2_SIMULATE_NON_UNIQUE = 0x00004000L; +enum SQL_CA2_SIMULATE_TRY_UNIQUE = 0x00008000L; +enum SQL_CA2_SIMULATE_UNIQUE = 0x00010000L; +enum SQL_CATALOG_LOCATION = SQL_QUALIFIER_LOCATION; +enum SQL_CATALOG_NAME_SEPARATOR = SQL_QUALIFIER_NAME_SEPARATOR; +enum SQL_CATALOG_TERM = SQL_QUALIFIER_TERM; +enum SQL_CATALOG_USAGE = SQL_QUALIFIER_USAGE; +enum SQL_CCOL_CREATE_COLLATION = 0x00000001L; +enum SQL_CCS_COLLATE_CLAUSE = 0x00000002L; +enum SQL_CCS_CREATE_CHARACTER_SET = 0x00000001L; +enum SQL_CCS_LIMITED_COLLATION = 0x00000004L; +enum SQL_CDO_COLLATION = 0x00000008L; +enum SQL_CDO_CONSTRAINT = 0x00000004L; +enum SQL_CDO_CONSTRAINT_DEFERRABLE = 0x00000080L; +enum SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L; +enum SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L; +enum SQL_CDO_CONSTRAINT_NAME_DEFINITION = 0x00000010L; +enum SQL_CDO_CONSTRAINT_NON_DEFERRABLE = 0x00000100L; +enum SQL_CDO_CREATE_DOMAIN = 0x00000001L; +enum SQL_CDO_DEFAULT = 0x00000002L; +enum SQL_CL_END = SQL_QL_END; +enum SQL_CL_START = SQL_QL_START; +enum SQL_COL_PRED_BASIC = SQL_ALL_EXCEPT_LIKE; +enum SQL_COL_PRED_CHAR = SQL_LIKE_ONLY; +enum SQL_COLUMN_DRIVER_START = 1000; +enum SQL_COLUMN_IGNORE = SQL_IGNORE; +enum SQL_COLUMN_NUMBER_UNKNOWN = -2; +enum SQL_CONVERT_GUID = 173; + +enum SQL_CONVERT_WCHAR = 122; +enum SQL_CONVERT_INTERVAL_DAY_TIME = 123; +enum SQL_CONVERT_INTERVAL_YEAR_MONTH = 124; +enum SQL_CONVERT_WLONGVARCHAR = 125; +enum SQL_CONVERT_WVARCHAR = 126; + +enum SQL_CREATE_ASSERTION = 127; +enum SQL_CREATE_CHARACTER_SET = 128; +enum SQL_CREATE_COLLATION = 129; +enum SQL_CREATE_DOMAIN = 130; +enum SQL_CREATE_SCHEMA = 131; +enum SQL_CREATE_TABLE = 132; +enum SQL_CREATE_TRANSLATION = 133; +enum SQL_CREATE_VIEW = 134; + + +enum SQL_CP_OFF = 0UL; +enum SQL_CP_DEFAULT = SQL_CP_OFF; +enum SQL_CP_ONE_PER_DRIVER = 1UL; +enum SQL_CP_ONE_PER_HENV = 2UL; + +enum SQL_CP_STRICT_MATCH = 0UL; +enum SQL_CP_MATCH_DEFAULT = SQL_CP_STRICT_MATCH; +enum SQL_CP_RELAXED_MATCH = 1UL; + +enum SQL_CS_CREATE_SCHEMA = 0x00000001L; +enum SQL_CS_AUTHORIZATION = 0x00000002L; +enum SQL_CS_DEFAULT_CHARACTER_SET = 0x00000004L; + +enum SQL_CT_COLUMN_COLLATION = 0x00000800L; +enum SQL_CT_COLUMN_CONSTRAINT = 0x00000200L; +enum SQL_CT_COLUMN_DEFAULT = 0x00000400L; +enum SQL_CT_COMMIT_DELETE = 0x00000004L; +enum SQL_CT_COMMIT_PRESERVE = 0x00000002L; +enum SQL_CT_CONSTRAINT_DEFERRABLE = 0x00000080L; +enum SQL_CT_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L; +enum SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L; +enum SQL_CT_CONSTRAINT_NAME_DEFINITION = 0x00002000L; +enum SQL_CT_CONSTRAINT_NON_DEFERRABLE = 0x00000100L; +enum SQL_CT_CREATE_TABLE = 0x00000001L; +enum SQL_CT_GLOBAL_TEMPORARY = 0x00000008L; +enum SQL_CT_LOCAL_TEMPORARY = 0x00000010L; +enum SQL_CT_TABLE_CONSTRAINT = 0x00001000L; + +enum SQL_CTR_CREATE_TRANSLATION = 0x00000001L; + +enum SQL_CU_DML_STATEMENTS = SQL_QU_DML_STATEMENTS; +enum SQL_CU_INDEX_DEFINITION = SQL_QU_INDEX_DEFINITION; +enum SQL_CU_PRIVILEGE_DEFINITION = SQL_QU_PRIVILEGE_DEFINITION; +enum SQL_CU_PROCEDURE_INVOCATION = SQL_QU_PROCEDURE_INVOCATION; +enum SQL_CU_TABLE_DEFINITION = SQL_QU_TABLE_DEFINITION; + +enum SQL_CVT_INTERVAL_YEAR_MONTH = 0x00080000L; +enum SQL_CVT_INTERVAL_DAY_TIME = 0x00100000L; +enum SQL_CVT_WCHAR = 0x00200000L; +enum SQL_CVT_WLONGVARCHAR = 0x00400000L; +enum SQL_CVT_WVARCHAR = 0x00800000L; +enum SQL_CVT_GUID = 0x01000000L; + +enum SQL_DA_DROP_ASSERTION = 0x00000001L; +enum SQL_DATETIME_LITERALS = 119; + +enum SQL_DB_DISCONNECT = 1UL; +enum SQL_DB_RETURN_TO_POOL = 0UL; +enum SQL_DB_DEFAULT = SQL_DB_RETURN_TO_POOL; + +enum SQL_DC_DROP_COLLATION = 0x00000001L; +enum SQL_DCS_DROP_CHARACTER_SET = 0x00000001L; +enum SQL_DD_CASCADE = 0x00000004L; +enum SQL_DD_DROP_DOMAIN = 0x00000001L; +enum SQL_DD_RESTRICT = 0x00000002L; +enum SQL_DDL_INDEX = 170; +enum SQL_DELETE_BY_BOOKMARK = 6; +enum SQL_DESC_ARRAY_SIZE = 20; +enum SQL_DESC_ARRAY_STATUS_PTR = 21; +enum SQL_DESC_AUTO_UNIQUE_VALUE = SQL_COLUMN_AUTO_INCREMENT; +enum SQL_DESC_BASE_COLUMN_NAME = 22; +enum SQL_DESC_BASE_TABLE_NAME = 23; +enum SQL_DESC_BIND_OFFSET_PTR = 24; +enum SQL_DESC_BIND_TYPE = 25; +enum SQL_DESC_CASE_SENSITIVE = SQL_COLUMN_CASE_SENSITIVE; +enum SQL_DESC_CATALOG_NAME = SQL_COLUMN_QUALIFIER_NAME; +enum SQL_DESC_CONCISE_TYPE = SQL_COLUMN_TYPE; +enum SQL_DESC_DATETIME_INTERVAL_PRECISION = 26; +enum SQL_DESC_DISPLAY_SIZE = SQL_COLUMN_DISPLAY_SIZE; +enum SQL_DESC_FIXED_PREC_SCALE = SQL_COLUMN_MONEY; +enum SQL_DESC_LABEL = SQL_COLUMN_LABEL; +enum SQL_DESC_LITERAL_PREFIX = 27; +enum SQL_DESC_LITERAL_SUFFIX = 28; +enum SQL_DESC_LOCAL_TYPE_NAME = 29; +enum SQL_DESC_MAXIMUM_SCALE = 30; +enum SQL_DESC_MINIMUM_SCALE = 31; +enum SQL_DESC_NUM_PREC_RADIX = 32; +enum SQL_DESC_PARAMETER_TYPE = 33; +enum SQL_DESC_ROWS_PROCESSED_PTR = 34; +enum SQL_DESC_SCHEMA_NAME = SQL_COLUMN_OWNER_NAME; +enum SQL_DESC_SEARCHABLE = SQL_COLUMN_SEARCHABLE; +enum SQL_DESC_TABLE_NAME = SQL_COLUMN_TABLE_NAME; +enum SQL_DESC_TYPE_NAME = SQL_COLUMN_TYPE_NAME; +enum SQL_DESC_UNSIGNED = SQL_COLUMN_UNSIGNED; +enum SQL_DESC_UPDATABLE = SQL_COLUMN_UPDATABLE; +enum SQL_DI_CREATE_INDEX = 0x00000001L; +enum SQL_DI_DROP_INDEX = 0x00000002L; + +enum SQL_DIAG_COLUMN_NUMBER = -1247; +enum SQL_DIAG_ROW_NUMBER = -1248; +enum SQL_DIAG_CURSOR_ROW_COUNT = -1249; + +enum SQL_DL_SQL92_DATE = 0x00000001L; +enum SQL_DL_SQL92_INTERVAL_DAY = 0x00000020L; +enum SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR = 0x00000400L; +enum SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE = 0x00000800L; +enum SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND = 0x00001000L; +enum SQL_DL_SQL92_INTERVAL_HOUR = 0x00000040L; +enum SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE = 0x00002000L; +enum SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND = 0x00004000L; +enum SQL_DL_SQL92_INTERVAL_MINUTE = 0x00000080L; +enum SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND = 0x00008000L; +enum SQL_DL_SQL92_INTERVAL_MONTH = 0x00000010L; +enum SQL_DL_SQL92_INTERVAL_SECOND = 0x00000100L; +enum SQL_DL_SQL92_INTERVAL_YEAR = 0x00000008L; +enum SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH = 0x00000200L; +enum SQL_DL_SQL92_TIME = 0x00000002L; +enum SQL_DL_SQL92_TIMESTAMP = 0x00000004L; +enum SQL_DM_VER = 171; +enum SQL_DRIVER_HDESC = 135; +enum SQL_DROP_ASSERTION = 136; +enum SQL_DROP_CHARACTER_SET = 137; +enum SQL_DROP_COLLATION = 138; +enum SQL_DROP_DOMAIN = 139; +enum SQL_DROP_SCHEMA = 140; +enum SQL_DROP_TABLE = 141; +enum SQL_DROP_TRANSLATION = 142; +enum SQL_DROP_VIEW = 143; +enum SQL_DS_CASCADE = 0x00000004L; +enum SQL_DS_DROP_SCHEMA = 0x00000001L; +enum SQL_DS_RESTRICT = 0x00000002L; +enum SQL_DT_CASCADE = 0x00000004L; +enum SQL_DT_DROP_TABLE = 0x00000001L; +enum SQL_DT_RESTRICT = 0x00000002L; +enum SQL_DTC_DONE = 0L; +enum SQL_DTR_DROP_TRANSLATION = 0x00000001L; +enum SQL_DV_CASCADE = 0x00000004L; +enum SQL_DV_DROP_VIEW = 0x00000001L; +enum SQL_DV_RESTRICT = 0x00000002L; +enum SQL_DYNAMIC_CURSOR_ATTRIBUTES1 = 144; +enum SQL_DYNAMIC_CURSOR_ATTRIBUTES2 = 145; +enum SQL_EXT_API_LAST = SQL_API_SQLBINDPARAMETER; +enum SQL_EXT_API_START = 40; +enum SQL_FETCH_BY_BOOKMARK = 7; +enum SQL_FETCH_FIRST_SYSTEM = 32; +enum SQL_FETCH_FIRST_USER = 31; +enum SQL_FN_CVT_CAST = 0x00000002L; +enum SQL_FN_STR_BIT_LENGTH = 0x00080000L; +enum SQL_FN_STR_CHAR_LENGTH = 0x00100000L; +enum SQL_FN_STR_CHARACTER_LENGTH = 0x00200000L; +enum SQL_FN_STR_OCTET_LENGTH = 0x00400000L; +enum SQL_FN_STR_POSITION = 0x00800000L; +enum SQL_FN_TD_CURRENT_DATE = 0x00020000L; +enum SQL_FN_TD_CURRENT_TIME = 0x00040000L; +enum SQL_FN_TD_CURRENT_TIMESTAMP = 0x00080000L; +enum SQL_FN_TD_EXTRACT = 0x00100000L; +enum SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 = 146; +enum SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 = 147; + /* #define SQL_FUNC_EXISTS(exists, api) + ((*(((UWORD*) (exists)) + ((api) >> 4)) & (1 << ((api) & 15)) ) ? + SQL_TRUE : SQL_FALSE ) + */ +enum SQL_GB_COLLATE = 0x0004; +enum SQL_HANDLE_SENV = 5; + +enum SQL_IK_NONE = 0; +enum SQL_IK_ASC = 1; +enum SQL_IK_DESC = 2; +enum SQL_IK_ALL = SQL_IK_ASC | SQL_IK_DESC; + +enum SQL_INDEX_KEYWORDS = 148; +enum SQL_INFO_DRIVER_START = 1000; +enum SQL_INFO_LAST = SQL_QUALIFIER_LOCATION; +enum SQL_INFO_SCHEMA_VIEWS = 149; +enum SQL_INITIALLY_DEFERRED = 5; +enum SQL_INITIALLY_IMMEDIATE = 6; +enum SQL_INSERT_STATEMENT = 172; +enum SQL_INTERVAL = 10; +enum SQL_IS_INSERT_LITERALS = 0x00000001L; +enum SQL_IS_INSERT_SEARCHED = 0x00000002L; +enum SQL_IS_INTEGER = -6; +enum SQL_IS_POINTER = -4; +enum SQL_IS_SELECT_INTO = 0x00000004L; +enum SQL_IS_SMALLINT = -8; +enum SQL_IS_UINTEGER = -5; +enum SQL_IS_USMALLINT = -7; +enum SQL_ISV_ASSERTIONS = 0x00000001L; +enum SQL_ISV_CHARACTER_SETS = 0x00000002L; +enum SQL_ISV_CHECK_CONSTRAINTS = 0x00000004L; +enum SQL_ISV_COLLATIONS = 0x00000008L; +enum SQL_ISV_COLUMN_DOMAIN_USAGE = 0x00000010L; +enum SQL_ISV_COLUMN_PRIVILEGES = 0x00000020L; +enum SQL_ISV_COLUMNS = 0x00000040L; +enum SQL_ISV_CONSTRAINT_COLUMN_USAGE = 0x00000080L; +enum SQL_ISV_CONSTRAINT_TABLE_USAGE = 0x00000100L; +enum SQL_ISV_DOMAIN_CONSTRAINTS = 0x00000200L; +enum SQL_ISV_DOMAINS = 0x00000400L; +enum SQL_ISV_KEY_COLUMN_USAGE = 0x00000800L; +enum SQL_ISV_REFERENTIAL_CONSTRAINTS = 0x00001000L; +enum SQL_ISV_SCHEMATA = 0x00002000L; +enum SQL_ISV_SQL_LANGUAGES = 0x00004000L; +enum SQL_ISV_TABLE_CONSTRAINTS = 0x00008000L; +enum SQL_ISV_TABLE_PRIVILEGES = 0x00010000L; +enum SQL_ISV_TABLES = 0x00020000L; +enum SQL_ISV_TRANSLATIONS = 0x00040000L; +enum SQL_ISV_USAGE_PRIVILEGES = 0x00080000L; +enum SQL_ISV_VIEW_COLUMN_USAGE = 0x00100000L; +enum SQL_ISV_VIEW_TABLE_USAGE = 0x00200000L; +enum SQL_ISV_VIEWS = 0x00400000L; +enum SQL_KEYSET_CURSOR_ATTRIBUTES1 = 150; +enum SQL_KEYSET_CURSOR_ATTRIBUTES2 = 151; +enum SQL_MAX_ASYNC_CONCURRENT_STATEMENTS = 10022; +enum SQL_NO_COLUMN_NUMBER = -1; +enum SQL_NO_ROW_NUMBER = -1; +enum SQL_NOT_DEFERRABLE = 7; +enum SQL_NUM_EXTENSIONS = SQL_EXT_API_LAST-SQL_EXT_API_START+1; +enum SQL_NUM_FUNCTIONS = 23; +enum SQL_ODBC_INTERFACE_CONFORMANCE = 152; + + enum : ULONG { + SQL_OIC_CORE = 1, + SQL_OIC_LEVEL1, + SQL_OIC_LEVEL2 + } + enum : ULONG { + SQL_OV_ODBC2 = 2, + SQL_OV_ODBC3 = 3 + } + +enum ULONG + SQL_PARAM_BIND_BY_COLUMN = 0, + SQL_PARAM_BIND_TYPE_DEFAULT = SQL_PARAM_BIND_BY_COLUMN; + +enum SQL_PARAM_ARRAY_ROW_COUNTS = 153; +enum SQL_PARAM_ARRAY_SELECTS = 154; +enum SQL_PARAM_DIAG_UNAVAILABLE = 1; +enum SQL_PARAM_ERROR = 5; +enum SQL_PARAM_IGNORE = 1; +enum SQL_PARAM_PROCEED = 0; +enum SQL_PARAM_SUCCESS = 0; +enum SQL_PARAM_SUCCESS_WITH_INFO = 6; +enum SQL_PARAM_UNUSED = 7; + +enum SQL_PARC_BATCH = 1; +enum SQL_PARC_NO_BATCH = 2; +enum SQL_PAS_BATCH = 1; +enum SQL_PAS_NO_BATCH = 2; +enum SQL_PAS_NO_SELECT = 3; + +enum SQL_ROW_IGNORE = 1; +enum SQL_ROW_NUMBER_UNKNOWN = -2; +enum SQL_ROW_PROCEED = 0; +enum SQL_ROW_SUCCESS_WITH_INFO = 6; + +enum SQL_SC_FIPS127_2_TRANSITIONAL = 0x00000002L; +enum SQL_SC_SQL92_ENTRY = 0x00000001L; +enum SQL_SC_SQL92_FULL = 0x00000008L; +enum SQL_SC_SQL92_INTERMEDIATE = 0x00000004L; + +enum SQL_SCC_ISO92_CLI = 0x00000002L; +enum SQL_SCC_XOPEN_CLI_VERSION1 = 0x00000001L; + +enum SQL_SCHEMA_TERM = SQL_OWNER_TERM; +enum SQL_SCHEMA_USAGE = SQL_OWNER_USAGE; +enum SQL_SDF_CURRENT_DATE = 0x00000001L; +enum SQL_SDF_CURRENT_TIME = 0x00000002L; +enum SQL_SDF_CURRENT_TIMESTAMP = 0x00000004L; +enum SQL_SFKD_CASCADE = 0x00000001L; +enum SQL_SFKD_NO_ACTION = 0x00000002L; +enum SQL_SFKD_SET_DEFAULT = 0x00000004L; +enum SQL_SFKD_SET_NULL = 0x00000008L; +enum SQL_SFKU_CASCADE = 0x00000001L; +enum SQL_SFKU_NO_ACTION = 0x00000002L; +enum SQL_SFKU_SET_DEFAULT = 0x00000004L; +enum SQL_SFKU_SET_NULL = 0x00000008L; +enum SQL_SG_DELETE_TABLE = 0x00000020L; +enum SQL_SG_INSERT_COLUMN = 0x00000080L; +enum SQL_SG_INSERT_TABLE = 0x00000040L; +enum SQL_SG_REFERENCES_COLUMN = 0x00000200L; +enum SQL_SG_REFERENCES_TABLE = 0x00000100L; +enum SQL_SG_SELECT_TABLE = 0x00000400L; +enum SQL_SG_UPDATE_COLUMN = 0x00001000L; +enum SQL_SG_UPDATE_TABLE = 0x00000800L; +enum SQL_SG_USAGE_ON_CHARACTER_SET = 0x00000002L; +enum SQL_SG_USAGE_ON_COLLATION = 0x00000004L; +enum SQL_SG_USAGE_ON_DOMAIN = 0x00000001L; +enum SQL_SG_USAGE_ON_TRANSLATION = 0x00000008L; +enum SQL_SG_WITH_GRANT_OPTION = 0x00000010L; +enum SQL_SNVF_BIT_LENGTH = 0x00000001L; +enum SQL_SNVF_CHAR_LENGTH = 0x00000002L; +enum SQL_SNVF_CHARACTER_LENGTH = 0x00000004L; +enum SQL_SNVF_EXTRACT = 0x00000008L; +enum SQL_SNVF_OCTET_LENGTH = 0x00000010L; +enum SQL_SNVF_POSITION = 0x00000020L; +enum SQL_SP_BETWEEN = 0x00000800L; +enum SQL_SP_COMPARISON = 0x00001000L; +enum SQL_SP_EXISTS = 0x00000001L; +enum SQL_SP_IN = 0x00000400L; +enum SQL_SP_ISNOTNULL = 0x00000002L; +enum SQL_SP_ISNULL = 0x00000004L; +enum SQL_SP_LIKE = 0x00000200L; +enum SQL_SP_MATCH_FULL = 0x00000008L; +enum SQL_SP_MATCH_PARTIAL = 0x00000010L; +enum SQL_SP_MATCH_UNIQUE_FULL = 0x00000020L; +enum SQL_SP_MATCH_UNIQUE_PARTIAL = 0x00000040L; +enum SQL_SP_OVERLAPS = 0x00000080L; +enum SQL_SP_QUANTIFIED_COMPARISON = 0x00002000L; +enum SQL_SP_UNIQUE = 0x00000100L; +enum SQL_SQL_CONFORMANCE = 118; +enum SQL_SQL92_DATETIME_FUNCTIONS = 155; +enum SQL_SQL92_FOREIGN_KEY_DELETE_RULE = 156; +enum SQL_SQL92_FOREIGN_KEY_UPDATE_RULE = 157; +enum SQL_SQL92_GRANT = 158; +enum SQL_SQL92_NUMERIC_VALUE_FUNCTIONS = 159; +enum SQL_SQL92_PREDICATES = 160; +enum SQL_SQL92_RELATIONAL_JOIN_OPERATORS = 161; +enum SQL_SQL92_REVOKE = 162; +enum SQL_SQL92_ROW_VALUE_CONSTRUCTOR = 163; +enum SQL_SQL92_STRING_FUNCTIONS = 164; +enum SQL_SQL92_VALUE_EXPRESSIONS = 165; +enum SQL_SR_CASCADE = 0x00000020L; +enum SQL_SR_DELETE_TABLE = 0x00000080L; +enum SQL_SR_GRANT_OPTION_FOR = 0x00000010L; +enum SQL_SR_INSERT_COLUMN = 0x00000200L; +enum SQL_SR_INSERT_TABLE = 0x00000100L; +enum SQL_SR_REFERENCES_COLUMN = 0x00000800L; +enum SQL_SR_REFERENCES_TABLE = 0x00000400L; +enum SQL_SR_RESTRICT = 0x00000040L; +enum SQL_SR_SELECT_TABLE = 0x00001000L; +enum SQL_SR_UPDATE_COLUMN = 0x00004000L; +enum SQL_SR_UPDATE_TABLE = 0x00002000L; +enum SQL_SR_USAGE_ON_CHARACTER_SET = 0x00000002L; +enum SQL_SR_USAGE_ON_COLLATION = 0x00000004L; +enum SQL_SR_USAGE_ON_DOMAIN = 0x00000001L; +enum SQL_SR_USAGE_ON_TRANSLATION = 0x00000008L; +enum SQL_SRJO_CORRESPONDING_CLAUSE = 0x00000001L; +enum SQL_SRJO_CROSS_JOIN = 0x00000002L; +enum SQL_SRJO_EXCEPT_JOIN = 0x00000004L; +enum SQL_SRJO_FULL_OUTER_JOIN = 0x00000008L; +enum SQL_SRJO_INNER_JOIN = 0x00000010L; +enum SQL_SRJO_INTERSECT_JOIN = 0x00000020L; +enum SQL_SRJO_LEFT_OUTER_JOIN = 0x00000040L; +enum SQL_SRJO_NATURAL_JOIN = 0x00000080L; +enum SQL_SRJO_RIGHT_OUTER_JOIN = 0x00000100L; +enum SQL_SRJO_UNION_JOIN = 0x00000200L; +enum SQL_SRVC_DEFAULT = 0x00000004L; +enum SQL_SRVC_NULL = 0x00000002L; +enum SQL_SRVC_ROW_SUBQUERY = 0x00000008L; +enum SQL_SRVC_VALUE_EXPRESSION = 0x00000001L; +enum SQL_SSF_CONVERT = 0x00000001L; +enum SQL_SSF_LOWER = 0x00000002L; +enum SQL_SSF_SUBSTRING = 0x00000008L; +enum SQL_SSF_TRANSLATE = 0x00000010L; +enum SQL_SSF_TRIM_BOTH = 0x00000020L; +enum SQL_SSF_TRIM_LEADING = 0x00000040L; +enum SQL_SSF_TRIM_TRAILING = 0x00000080L; +enum SQL_SSF_UPPER = 0x00000004L; +enum SQL_STANDARD_CLI_CONFORMANCE = 166; +enum SQL_STATIC_CURSOR_ATTRIBUTES1 = 167; +enum SQL_STATIC_CURSOR_ATTRIBUTES2 = 168; +enum SQL_SU_DML_STATEMENTS = SQL_OU_DML_STATEMENTS; +enum SQL_SU_INDEX_DEFINITION = SQL_OU_INDEX_DEFINITION; +enum SQL_SU_PRIVILEGE_DEFINITION = SQL_OU_PRIVILEGE_DEFINITION; +enum SQL_SU_PROCEDURE_INVOCATION = SQL_OU_PROCEDURE_INVOCATION; +enum SQL_SU_TABLE_DEFINITION = SQL_OU_TABLE_DEFINITION; +enum SQL_SVE_CASE = 0x00000001L; +enum SQL_SVE_CAST = 0x00000002L; +enum SQL_SVE_COALESCE = 0x00000004L; +enum SQL_SVE_NULLIF = 0x00000008L; +enum SQL_UB_FIXED = SQL_UB_ON; +enum SQL_UB_VARIABLE = 2UL; +enum SQL_UNION_STATEMENT = SQL_UNION; +enum SQL_UPDATE_BY_BOOKMARK = 5; +enum SQL_US_UNION = SQL_U_UNION; +enum SQL_US_UNION_ALL = SQL_U_UNION_ALL; +}//[Yes] #endif /* ODBCVER >= 0x300 */ +static if (ODBCVER >= 0x0350) +{ +enum SQL_DESC_ROWVER = 35; +enum SQL_GUID = -11; +enum SQL_C_GUID = SQL_GUID; + //#ifdef ODBC_STD + //#define SQLAllocHandle SQLAllocHandleStd + //#define SQLAllocEnv(p) SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, p) + //#define SQL_YEAR SQL_CODE_YEAR + //#define SQL_MONTH SQL_CODE_MONTH + //#define SQL_DAY SQL_CODE_DAY + //#define SQL_HOUR SQL_CODE_HOUR + //#define SQL_MINUTE SQL_CODE_MINUTE + //#define SQL_SECOND SQL_CODE_SECOND + //#define SQL_YEAR_TO_MONTH SQL_CODE_YEAR_TO_MONTH + //#define SQL_DAY_TO_HOUR SQL_CODE_DAY_TO_HOUR + //#define SQL_DAY_TO_MINUTE SQL_CODE_DAY_TO_MINUTE + //#define SQL_DAY_TO_SECOND SQL_CODE_DAY_TO_SECOND + //#define SQL_HOUR_TO_MINUTE SQL_CODE_HOUR_TO_MINUTE + //#define SQL_HOUR_TO_SECOND SQL_CODE_HOUR_TO_SECOND + //#define SQL_MINUTE_TO_SECOND SQL_CODE_MINUTE_TO_SECOND + //#endif /* ODBC_STD */ +}//#endif /* ODBCVER >= 0x0350 */ + +//static if (ODBCVER >= 0x0351) +//{ +enum SQL_ATTR_ANSI_APP=115; +enum SQL_AA_TRUE=1L; +enum SQL_AA_FALSE=0L; +//}//[Yes] #endif + +enum TRACE_VERSION=1000; +enum TRACE_ON=1; + +const char [] SQL_ODBC_KEYWORDS = + "ABSOLUTE, ACTION, ADA, ADD, ALL, ALLOCATE, ALTER, AND, ANY, ARE, AS, " + ~ "ASC, ASSERTION, AT, AUTHORIZATION, AVG, " + ~ "BEGIN, BETWEEN, BIT, BIT_LENGTH, BOTH, BY, CASCADE, CASCADED, CASE, CAST, CATALOG, " + ~ "CHAR, CHAR_LENGTH, CHARACTER, CHARACTER_LENGTH, CHECK, CLOSE, COALESCE, " + ~ "COLLATE, COLLATION, COLUMN, COMMIT, CONNECT, CONNECTION, CONSTRAINT, " + ~ "CONSTRAINTS, CONTINUE, CONVERT, CORRESPONDING, COUNT, CREATE, CROSS, CURRENT, " + ~ "CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, " + ~ "DATE, DAY, DEALLOCATE, DEC, DECIMAL, DECLARE, DEFAULT, DEFERRABLE, " + ~ "DEFERRED, DELETE, DESC, DESCRIBE, DESCRIPTOR, DIAGNOSTICS, DISCONNECT, " + ~ "DISTINCT, DOMAIN, DOUBLE, DROP, " + ~ "ELSE, END, END-EXEC, ESCAPE, EXCEPT, EXCEPTION, EXEC, EXECUTE, " + ~ "EXISTS, EXTERNAL, EXTRACT, " + ~ "FALSE, FETCH, FIRST, FLOAT, FOR, FOREIGN, FORTRAN, FOUND, FROM, FULL, " + ~ "GET, GLOBAL, GO, GOTO, GRANT, GROUP, HAVING, HOUR, " + ~ "IDENTITY, IMMEDIATE, IN, INCLUDE, INDEX, INDICATOR, INITIALLY, INNER, " + ~ "INPUT, INSENSITIVE, INSERT, INT, INTEGER, INTERSECT, INTERVAL, INTO, IS, ISOLATION, " + ~ "JOIN, KEY, LANGUAGE, LAST, LEADING, LEFT, LEVEL, LIKE, LOCAL, LOWER, " + ~ "MATCH, MAX, MIN, MINUTE, MODULE, MONTH, " + ~ "NAMES, NATIONAL, NATURAL, NCHAR, NEXT, NO, NONE, NOT, NULL, NULLIF, NUMERIC, " + ~ "OCTET_LENGTH, OF, ON, ONLY, OPEN, OPTION, OR, ORDER, OUTER, OUTPUT, OVERLAPS, " + ~ "PAD, PARTIAL, PASCAL, PLI, POSITION, PRECISION, PREPARE, PRESERVE, " + ~ "PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC, " + ~ "READ, REAL, REFERENCES, RELATIVE, RESTRICT, REVOKE, RIGHT, ROLLBACK, ROWS" + ~ "SCHEMA, SCROLL, SECOND, SECTION, SELECT, SESSION, SESSION_USER, SET, SIZE, " + ~ "SMALLINT, SOME, SPACE, SQL, SQLCA, SQLCODE, SQLERROR, SQLSTATE, SQLWARNING, " + ~ "SUBSTRING, SUM, SYSTEM_USER, " + ~ "TABLE, TEMPORARY, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, " + ~ "TO, TRAILING, TRANSACTION, TRANSLATE, TRANSLATION, TRIM, TRUE, " + ~ "UNION, UNIQUE, UNKNOWN, UPDATE, UPPER, USAGE, USER, USING, " + ~ "VALUE, VALUES, VARCHAR, VARYING, VIEW, WHEN, WHENEVER, WHERE, WITH, WORK, WRITE, " + ~ "YEAR, ZONE"; +extern (System) { + SQLRETURN SQLDriverConnect(SQLHDBC, SQLHWND, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT); + SQLRETURN SQLBrowseConnect(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLColumnPrivileges(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLColAttributes(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); + SQLRETURN SQLDescribeParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLExtendedFetch(SQLHSTMT, SQLUSMALLINT, SQLINTEGER, SQLUINTEGER*, SQLUSMALLINT*); + SQLRETURN SQLForeignKeys(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLMoreResults(SQLHSTMT); + SQLRETURN SQLNativeSql(SQLHDBC, SQLCHAR*, SQLINTEGER, SQLCHAR*, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLNumParams(SQLHSTMT, SQLSMALLINT*); + SQLRETURN SQLParamOptions(SQLHSTMT, SQLUINTEGER, SQLUINTEGER*); + SQLRETURN SQLPrimaryKeys(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedureColumns(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedures(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLSetPos(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLTablePrivileges(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLDrivers(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*); + SQLRETURN SQLSetScrollOptions(SQLHSTMT, SQLUSMALLINT, SQLLEN, SQLUSMALLINT);/* deprecated */ + DWORD ODBCGetTryWaitValue(); + BOOL ODBCSetTryWaitValue(DWORD); + RETCODE TraceOpenLogFile(LPWSTR, LPWSTR, DWORD); + RETCODE TraceCloseLogFile(); + VOID TraceReturn(RETCODE, RETCODE); + DWORD TraceVersion(); + //static if (ODBCVER >= 0x0300) + //{ + SQLRETURN SQLBulkOperations(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLAllocHandleStd( SQLSMALLINT, SQLHANDLE, SQLHANDLE*); + //} +} diff --git a/libphobos/src/etc/c/odbc/sqltypes.d b/libphobos/src/etc/c/odbc/sqltypes.d new file mode 100644 index 00000000000..6aea0f66814 --- /dev/null +++ b/libphobos/src/etc/c/odbc/sqltypes.d @@ -0,0 +1,178 @@ +/** + * Windows API header module + * + * Translated from MinGW Windows headers + * + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) + * Source: $(PHOBOSSRC etc/c/odbc/_sqltypes.d) + +Declarations for interfacing with the ODBC library. + +See_Also: $(LINK2 https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/odbc-api-reference, + ODBC API Reference on MSDN) + */ +deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package.") +module etc.c.odbc.sqltypes; + +version (ANSI) {} else version = Unicode; + +/* Conversion notes: + It's assumed that ODBC >= 0x0300. +*/ + +// Import windows types or declare appropriate aliases if we are not. +version (Windows) +{ + public import core.sys.windows.windef; + public import core.sys.windows.basetyps; // for GUID +} +else +{ + alias ushort USHORT, WORD; + alias uint ULONG, LONG, BOOL, DWORD; + alias void VOID; + alias void* PVOID, HANDLE, HWND; + alias ubyte UCHAR, BYTE; + alias wchar* LPWSTR; + + align(1) struct GUID { // size is 16 + align(1): + DWORD Data1; + WORD Data2; + WORD Data3; + BYTE[8] Data4; + } +} +alias GUID SQLGUID; + +alias byte SCHAR, SQLSCHAR; +alias int SDWORD, SLONG, SQLINTEGER; +alias short SWORD, SSHORT, RETCODE, SQLSMALLINT; +alias ULONG UDWORD; +alias USHORT UWORD, SQLUSMALLINT; +alias double SDOUBLE, LDOUBLE; +alias float SFLOAT; +alias PVOID PTR, HENV, HDBC, HSTMT, SQLPOINTER; +alias UCHAR SQLCHAR; +// #ifndef _WIN64 +alias UDWORD SQLUINTEGER; +// #endif + +//static if (ODBCVER >= 0x0300) +//{ +alias HANDLE SQLHANDLE; +alias SQLHANDLE SQLHENV, SQLHDBC, SQLHSTMT, SQLHDESC; +/* +} +else +{ +alias void* SQLHENV; +alias void* SQLHDBC; +alias void* SQLHSTMT; +} +*/ +alias SQLSMALLINT SQLRETURN; +alias HWND SQLHWND; +alias ULONG BOOKMARK; + +alias SQLINTEGER SQLLEN, SQLROWOFFSET; +alias SQLUINTEGER SQLROWCOUNT, SQLULEN; +alias DWORD SQLTRANSID; +alias SQLUSMALLINT SQLSETPOSIROW; +alias wchar SQLWCHAR; + +version (Unicode) +{ + alias SQLWCHAR SQLTCHAR; +} +else +{ + alias SQLCHAR SQLTCHAR; +} +//static if (ODBCVER >= 0x0300) +//{ +alias ubyte SQLDATE, SQLDECIMAL; +alias double SQLDOUBLE, SQLFLOAT; +alias ubyte SQLNUMERIC; +alias float SQLREAL; +alias ubyte SQLTIME, SQLTIMESTAMP, SQLVARCHAR; +alias long ODBCINT64, SQLBIGINT; +alias ulong SQLUBIGINT; +//} + +struct DATE_STRUCT { + SQLSMALLINT year; + SQLUSMALLINT month; + SQLUSMALLINT day; +} + +struct TIME_STRUCT { + SQLUSMALLINT hour; + SQLUSMALLINT minute; + SQLUSMALLINT second; +} + +struct TIMESTAMP_STRUCT { + SQLSMALLINT year; + SQLUSMALLINT month; + SQLUSMALLINT day; + SQLUSMALLINT hour; + SQLUSMALLINT minute; + SQLUSMALLINT second; + SQLUINTEGER fraction; +} + +//static if (ODBCVER >= 0x0300) +//{ +alias DATE_STRUCT SQL_DATE_STRUCT; +alias TIME_STRUCT SQL_TIME_STRUCT; +alias TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT; + +enum SQLINTERVAL { + SQL_IS_YEAR = 1, + SQL_IS_MONTH, + SQL_IS_DAY, + SQL_IS_HOUR, + SQL_IS_MINUTE, + SQL_IS_SECOND, + SQL_IS_YEAR_TO_MONTH, + SQL_IS_DAY_TO_HOUR, + SQL_IS_DAY_TO_MINUTE, + SQL_IS_DAY_TO_SECOND, + SQL_IS_HOUR_TO_MINUTE, + SQL_IS_HOUR_TO_SECOND, + SQL_IS_MINUTE_TO_SECOND +} + +struct SQL_YEAR_MONTH_STRUCT { + SQLUINTEGER year; + SQLUINTEGER month; +} + +struct SQL_DAY_SECOND_STRUCT { + SQLUINTEGER day; + SQLUINTEGER hour; + SQLUINTEGER minute; + SQLUINTEGER second; + SQLUINTEGER fraction; +} + +struct SQL_INTERVAL_STRUCT { + SQLINTERVAL interval_type; + SQLSMALLINT interval_sign; + union _intval { + SQL_YEAR_MONTH_STRUCT year_month; + SQL_DAY_SECOND_STRUCT day_second; + } + _intval intval; +} + +enum SQL_MAX_NUMERIC_LEN = 16; + +struct SQL_NUMERIC_STRUCT { + SQLCHAR precision; + SQLSCHAR scale; + SQLCHAR sign; + SQLCHAR[SQL_MAX_NUMERIC_LEN] val; +} +// } ODBCVER >= 0x0300 diff --git a/libphobos/src/etc/c/odbc/sqlucode.d b/libphobos/src/etc/c/odbc/sqlucode.d new file mode 100644 index 00000000000..00f769fd79a --- /dev/null +++ b/libphobos/src/etc/c/odbc/sqlucode.d @@ -0,0 +1,171 @@ +/** + * Windows API header module + * + * Translated from MinGW Windows headers + * + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) + * Source: $(PHOBOSSRC etc/c/odbc/_sqlucode.d) + +Declarations for interfacing with the ODBC library. + +See_Also: $(LINK2 https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/odbc-api-reference, + ODBC API Reference on MSDN) + */ +deprecated ("The ODBC 3.5 modules are deprecated. Please use the ODBC4 modules in the `etc.c.odbc` package.") +module etc.c.odbc.sqlucode; + +version (ANSI) {} else version = Unicode; + +import etc.c.odbc.sqlext; + +enum SQL_WCHAR = -8; +enum SQL_WVARCHAR = -9; +enum SQL_WLONGVARCHAR = -10; +enum SQL_C_WCHAR = SQL_WCHAR; + +enum SQL_SQLSTATE_SIZEW = 10; +version (Unicode) +{ +enum SQL_C_TCHAR = SQL_C_WCHAR; +} +else +{ +enum SQL_C_TCHAR = SQL_C_CHAR; +} + +// Moved from sqlext +static if (ODBCVER <= 0x0300) +{ +enum SQL_UNICODE = -95; +enum SQL_UNICODE_VARCHAR = -96; +enum SQL_UNICODE_LONGVARCHAR = -97; +enum SQL_UNICODE_CHAR = SQL_UNICODE; +} +else +{ +enum SQL_UNICODE = SQL_WCHAR; +enum SQL_UNICODE_VARCHAR = SQL_WVARCHAR; +enum SQL_UNICODE_LONGVARCHAR = SQL_WLONGVARCHAR; +enum SQL_UNICODE_CHAR = SQL_WCHAR; +} + +extern (System) { + SQLRETURN SQLBrowseConnectA(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLBrowseConnectW(SQLHDBC, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLColAttributeA(SQLHSTMT, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLPOINTER); + SQLRETURN SQLColAttributeW(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLPOINTER); + SQLRETURN SQLColAttributesA(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); + SQLRETURN SQLColAttributesW(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*); + SQLRETURN SQLColumnPrivilegesA( SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLCHAR*, SQLSMALLINT ); + SQLRETURN SQLColumnPrivilegesW( SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT ); + SQLRETURN SQLColumnsA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLCHAR*, SQLSMALLINT ); + SQLRETURN SQLColumnsW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT , SQLWCHAR*, SQLSMALLINT ); + SQLRETURN SQLConnectA(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLConnectW(SQLHDBC, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLDataSourcesA(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLDataSourcesW(SQLHENV, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLDescribeColA(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLDescribeColW(SQLHSTMT, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLDriverConnectA(SQLHDBC, SQLHWND, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT); + SQLRETURN SQLDriverConnectW(SQLHDBC, SQLHWND, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT); + SQLRETURN SQLDriversA(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLDriversW(SQLHENV, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLErrorA(SQLHENV, SQLHDBC, SQLHSTMT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLErrorW(SQLHENV, SQLHDBC, SQLHSTMT, SQLWCHAR*, SQLINTEGER*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLExecDirectA(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLExecDirectW(SQLHSTMT, SQLWCHAR*, SQLINTEGER); + SQLRETURN SQLForeignKeysA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLForeignKeysW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLGetConnectAttrA(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetConnectAttrW(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetConnectOptionA(SQLHDBC, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLGetConnectOptionW(SQLHDBC, SQLUSMALLINT, SQLPOINTER); + SQLRETURN SQLGetCursorNameA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetCursorNameW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetInfoA(SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetInfoW(SQLHDBC, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetTypeInfoA(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLGetTypeInfoW(SQLHSTMT, SQLSMALLINT); + SQLRETURN SQLNativeSqlA(SQLHDBC, SQLCHAR*, SQLINTEGER, SQLCHAR*, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLNativeSqlW(SQLHDBC, SQLWCHAR*, SQLINTEGER, SQLWCHAR*, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLPrepareA(SQLHSTMT, SQLCHAR*, SQLINTEGER); + SQLRETURN SQLPrepareW(SQLHSTMT, SQLWCHAR*, SQLINTEGER); + SQLRETURN SQLPrimaryKeysA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT ); + SQLRETURN SQLPrimaryKeysW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedureColumnsA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProcedureColumnsW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLProceduresA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLProceduresW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLSetConnectAttrA(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetConnectAttrW(SQLHDBC, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetConnectOptionA(SQLHDBC, SQLUSMALLINT, SQLULEN); + SQLRETURN SQLSetConnectOptionW(SQLHDBC, SQLUSMALLINT, SQLULEN); + SQLRETURN SQLSetCursorNameA(SQLHSTMT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLSetCursorNameW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT); + SQLRETURN SQLSpecialColumnsA(SQLHSTMT, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLSpecialColumnsW(SQLHSTMT, SQLUSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLStatisticsA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLStatisticsW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT , SQLUSMALLINT, SQLUSMALLINT); + SQLRETURN SQLTablePrivilegesA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLTablePrivilegesW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT ); + SQLRETURN SQLTablesA(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT); + SQLRETURN SQLTablesW(SQLHSTMT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT); + static if (ODBCVER >= 0x0300) + { + SQLRETURN SQLGetDescFieldA(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetDescFieldW(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLSetDescFieldA(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetDescFieldW(SQLHDESC, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLGetDescRecA(SQLHDESC, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*, SQLLEN*, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLGetDescRecW(SQLHDESC, SQLSMALLINT, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*, SQLLEN*, SQLSMALLINT*, SQLSMALLINT*, SQLSMALLINT*); + SQLRETURN SQLGetDiagFieldA(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagFieldW(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagRecA(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLCHAR*, SQLINTEGER*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetDiagRecW(SQLSMALLINT, SQLHANDLE, SQLSMALLINT, SQLWCHAR*, SQLINTEGER*, SQLWCHAR*, SQLSMALLINT, SQLSMALLINT*); + SQLRETURN SQLGetStmtAttrA(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLGetStmtAttrW(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER, SQLINTEGER*); + SQLRETURN SQLSetStmtAttrA(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER); + SQLRETURN SQLSetStmtAttrW(SQLHSTMT, SQLINTEGER, SQLPOINTER, SQLINTEGER); + } // #endif /* (ODBCVER >= 0x0300) */ +} + +version (Unicode) +{ + alias SQLBrowseConnectW SQLBrowseConnect; + alias SQLColAttributeW SQLColAttribute; + alias SQLColAttributesW SQLColAttributes; + alias SQLColumnPrivilegesW SQLColumnPrivileges; + alias SQLColumnsW SQLColumns; + alias SQLConnectW SQLConnect; + alias SQLDataSourcesW SQLDataSources; + alias SQLDescribeColW SQLDescribeCol; + alias SQLDriverConnectW SQLDriverConnect; + alias SQLDriversW SQLDrivers; + alias SQLErrorW SQLError; + alias SQLExecDirectW SQLExecDirect; + alias SQLForeignKeysW SQLForeignKeys; + alias SQLGetConnectAttrW SQLGetConnectAttr; + alias SQLGetConnectOptionW SQLGetConnectOption; + alias SQLGetCursorNameW SQLGetCursorName; + alias SQLGetDescFieldW SQLGetDescField; + alias SQLGetDescRecW SQLGetDescRec; + alias SQLGetDiagFieldW SQLGetDiagField; + alias SQLGetDiagRecW SQLGetDiagRec; + alias SQLGetInfoW SQLGetInfo; + alias SQLGetStmtAttrW SQLGetStmtAttr; + alias SQLGetTypeInfoW SQLGetTypeInfo; + alias SQLNativeSqlW SQLNativeSql; + alias SQLPrepareW SQLPrepare; + alias SQLPrimaryKeysW SQLPrimaryKeys; + alias SQLProcedureColumnsW SQLProcedureColumns; + alias SQLProceduresW SQLProcedures; + alias SQLSetConnectAttrW SQLSetConnectAttr; + alias SQLSetConnectOptionW SQLSetConnectOption; + alias SQLSetCursorNameW SQLSetCursorName; + alias SQLSetDescFieldW SQLSetDescField; + alias SQLSetStmtAttrW SQLSetStmtAttr; + alias SQLSpecialColumnsW SQLSpecialColumns; + alias SQLStatisticsW SQLStatistics; + alias SQLTablePrivilegesW SQLTablePrivileges; + alias SQLTablesW SQLTables; +} diff --git a/libphobos/src/etc/c/sqlite3.d b/libphobos/src/etc/c/sqlite3.d new file mode 100644 index 00000000000..a06ff4cbd57 --- /dev/null +++ b/libphobos/src/etc/c/sqlite3.d @@ -0,0 +1,2880 @@ +module etc.c.sqlite3; +/* +** 2001-09-15 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +************************************************************************* +** This header file defines the interface that the SQLite library +** presents to client programs. If a C-function, structure, datatype, +** or constant definition does not appear in this file, then it is +** not a published API of SQLite, is subject to change without +** notice, and should not be referenced by programs that use SQLite. +** +** Some of the definitions that are in this file are marked as +** "experimental". Experimental interfaces are normally new +** features recently added to SQLite. We do not anticipate changes +** to experimental interfaces but reserve the right to make minor changes +** if experience from use "in the wild" suggest such changes are prudent. +** +** The official C-language API documentation for SQLite is derived +** from comments in this file. This file is the authoritative source +** on how SQLite interfaces are suppose to operate. +** +** The name of this file under configuration management is "sqlite.h.in". +** The makefile makes some minor changes to this file (such as inserting +** the version number) and changes its name to "sqlite3.h" as +** part of the build process. +*/ + +import core.stdc.stdarg : va_list; +import core.stdc.config : c_ulong; + +extern (C) __gshared nothrow: + +/** +* CAPI3REF: Compile-Time Library Version Numbers +*/ +enum SQLITE_VERSION = "3.33.0"; +/// Ditto +enum SQLITE_VERSION_NUMBER = 3033000; +/// Ditto +enum SQLITE_SOURCE_ID = "2020-08-14 13:23:32 fca8dc8b578f215a969cd899336378966156154710873e68b3d9ac5881b0ff3f"; + +/** +* CAPI3REF: Run-Time Library Version Numbers +*/ +extern immutable(char)* sqlite3_version; +/// Ditto +immutable(char)* sqlite3_libversion(); +/// Ditto +immutable(char)* sqlite3_sourceid(); +/// Ditto +int sqlite3_libversion_number(); + +/** +* CAPI3REF: Run-Time Library Compilation Options Diagnostics +*/ +int sqlite3_compileoption_used(const char *zOptName); +/// Ditto +immutable(char)* sqlite3_compileoption_get(int N); + +/** +* CAPI3REF: Test To See If The Library Is Threadsafe +*/ +int sqlite3_threadsafe(); + +/** +* CAPI3REF: Database Connection Handle +*/ +struct sqlite3; + +/// +alias sqlite3_int64 = long; +/// +alias sqlite3_uint64 = ulong; + +/** +* CAPI3REF: Closing A Database Connection +* +*/ +int sqlite3_close(sqlite3 *); +int sqlite3_close_v2(sqlite3*); + +/** +* The type for a callback function. +* This is legacy and deprecated. It is included for historical +* compatibility and is not documented. +*/ +alias sqlite3_callback = int function (void*,int,char**, char**); + +/** +* CAPI3REF: One-Step Query Execution Interface +*/ +int sqlite3_exec( + sqlite3*, /** An open database */ + const(char)*sql, /** SQL to be evaluated */ + int function (void*,int,char**,char**) callback, /** Callback function */ + void *, /** 1st argument to callback */ + char **errmsg /** Error msg written here */ +); + +/** +* CAPI3REF: Result Codes +*/ +enum +{ + SQLITE_OK = 0, /** Successful result */ +/* beginning-of-error-codes */ +/// Ditto + SQLITE_ERROR = 1, /** Generic error */ + SQLITE_INTERNAL = 2, /** Internal logic error in SQLite */ + SQLITE_PERM = 3, /** Access permission denied */ + SQLITE_ABORT = 4, /** Callback routine requested an abort */ + SQLITE_BUSY = 5, /** The database file is locked */ + SQLITE_LOCKED = 6, /** A table in the database is locked */ + SQLITE_NOMEM = 7, /** A malloc() failed */ + SQLITE_READONLY = 8, /** Attempt to write a readonly database */ + SQLITE_INTERRUPT = 9, /** Operation terminated by sqlite3_interrupt()*/ + SQLITE_IOERR = 10, /** Some kind of disk I/O error occurred */ + SQLITE_CORRUPT = 11, /** The database disk image is malformed */ + SQLITE_NOTFOUND = 12, /** Unknown opcode in sqlite3_file_control() */ + SQLITE_FULL = 13, /** Insertion failed because database is full */ + SQLITE_CANTOPEN = 14, /** Unable to open the database file */ + SQLITE_PROTOCOL = 15, /** Database lock protocol error */ + SQLITE_EMPTY = 16, /** Internal use only */ + SQLITE_SCHEMA = 17, /** The database schema changed */ + SQLITE_TOOBIG = 18, /** String or BLOB exceeds size limit */ + SQLITE_CONSTRAINT = 19, /** Abort due to constraint violation */ + SQLITE_MISMATCH = 20, /** Data type mismatch */ + SQLITE_MISUSE = 21, /** Library used incorrectly */ + SQLITE_NOLFS = 22, /** Uses OS features not supported on host */ + SQLITE_AUTH = 23, /** Authorization denied */ + SQLITE_FORMAT = 24, /** Not used */ + SQLITE_RANGE = 25, /** 2nd parameter to sqlite3_bind out of range */ + SQLITE_NOTADB = 26, /** File opened that is not a database file */ + SQLITE_NOTICE = 27, + SQLITE_WARNING = 28, + SQLITE_ROW = 100, /** sqlite3_step() has another row ready */ + SQLITE_DONE = 101 /** sqlite3_step() has finished executing */ +} +/* end-of-error-codes */ + +/** +* CAPI3REF: Extended Result Codes +*/ +enum +{ + SQLITE_ERROR_MISSING_COLLSEQ = (SQLITE_ERROR | (1 << 8)), + SQLITE_ERROR_RETRY = (SQLITE_ERROR | (2 << 8)), + SQLITE_ERROR_SNAPSHOT = (SQLITE_ERROR | (3 << 8)), + SQLITE_IOERR_READ = (SQLITE_IOERR | (1 << 8)), + SQLITE_IOERR_SHORT_READ = (SQLITE_IOERR | (2 << 8)), + SQLITE_IOERR_WRITE = (SQLITE_IOERR | (3 << 8)), + SQLITE_IOERR_FSYNC = (SQLITE_IOERR | (4 << 8)), + SQLITE_IOERR_DIR_FSYNC = (SQLITE_IOERR | (5 << 8)), + SQLITE_IOERR_TRUNCATE = (SQLITE_IOERR | (6 << 8)), + SQLITE_IOERR_FSTAT = (SQLITE_IOERR | (7 << 8)), + SQLITE_IOERR_UNLOCK = (SQLITE_IOERR | (8 << 8)), + SQLITE_IOERR_RDLOCK = (SQLITE_IOERR | (9 << 8)), + SQLITE_IOERR_DELETE = (SQLITE_IOERR | (10 << 8)), + SQLITE_IOERR_BLOCKED = (SQLITE_IOERR | (11 << 8)), + SQLITE_IOERR_NOMEM = (SQLITE_IOERR | (12 << 8)), + SQLITE_IOERR_ACCESS = (SQLITE_IOERR | (13 << 8)), + SQLITE_IOERR_CHECKRESERVEDLOCK = (SQLITE_IOERR | (14 << 8)), + SQLITE_IOERR_LOCK = (SQLITE_IOERR | (15 << 8)), + SQLITE_IOERR_CLOSE = (SQLITE_IOERR | (16 << 8)), + SQLITE_IOERR_DIR_CLOSE = (SQLITE_IOERR | (17 << 8)), + SQLITE_IOERR_SHMOPEN = (SQLITE_IOERR | (18 << 8)), + SQLITE_IOERR_SHMSIZE = (SQLITE_IOERR | (19 << 8)), + SQLITE_IOERR_SHMLOCK = (SQLITE_IOERR | (20 << 8)), + SQLITE_IOERR_SHMMAP = (SQLITE_IOERR | (21 << 8)), + SQLITE_IOERR_SEEK = (SQLITE_IOERR | (22 << 8)), + SQLITE_IOERR_DELETE_NOENT = (SQLITE_IOERR | (23 << 8)), + SQLITE_IOERR_MMAP = (SQLITE_IOERR | (24 << 8)), + SQLITE_IOERR_GETTEMPPATH = (SQLITE_IOERR | (25 << 8)), + SQLITE_IOERR_CONVPATH = (SQLITE_IOERR | (26 << 8)), + SQLITE_IOERR_VNODE = (SQLITE_IOERR | (27 << 8)), + SQLITE_IOERR_AUTH = (SQLITE_IOERR | (28 << 8)), + SQLITE_IOERR_BEGIN_ATOMIC = (SQLITE_IOERR | (29 << 8)), + SQLITE_IOERR_COMMIT_ATOMIC = (SQLITE_IOERR | (30 << 8)), + SQLITE_IOERR_ROLLBACK_ATOMIC = (SQLITE_IOERR | (31 << 8)), + SQLITE_IOERR_DATA = (SQLITE_IOERR | (32 << 8)), + SQLITE_LOCKED_SHAREDCACHE = (SQLITE_LOCKED | (1 << 8)), + SQLITE_LOCKED_VTAB = (SQLITE_LOCKED | (2 << 8)), + SQLITE_BUSY_RECOVERY = (SQLITE_BUSY | (1 << 8)), + SQLITE_BUSY_SNAPSHOT = (SQLITE_BUSY | (2 << 8)), + SQLITE_BUSY_TIMEOUT = (SQLITE_BUSY | (3 << 8)), + SQLITE_CANTOPEN_NOTEMPDIR = (SQLITE_CANTOPEN | (1 << 8)), + SQLITE_CANTOPEN_ISDIR = (SQLITE_CANTOPEN | (2 << 8)), + SQLITE_CANTOPEN_FULLPATH = (SQLITE_CANTOPEN | (3 << 8)), + SQLITE_CANTOPEN_CONVPATH = (SQLITE_CANTOPEN | (4 << 8)), + SQLITE_CANTOPEN_DIRTYWAL = (SQLITE_CANTOPEN | (5 << 8)), /* Not Used */ + SQLITE_CANTOPEN_SYMLINK = (SQLITE_CANTOPEN | (6 << 8)), + SQLITE_CORRUPT_VTAB = (SQLITE_CORRUPT | (1 << 8)), + SQLITE_CORRUPT_SEQUENCE = (SQLITE_CORRUPT | (2 << 8)), + SQLITE_CORRUPT_INDEX = (SQLITE_CORRUPT | (3 << 8)), + SQLITE_READONLY_RECOVERY = (SQLITE_READONLY | (1 << 8)), + SQLITE_READONLY_CANTLOCK = (SQLITE_READONLY | (2 << 8)), + SQLITE_READONLY_ROLLBACK = (SQLITE_READONLY | (3 << 8)), + SQLITE_READONLY_DBMOVED = (SQLITE_READONLY | (4 << 8)), + SQLITE_READONLY_CANTINIT = (SQLITE_READONLY | (5 << 8)), + SQLITE_READONLY_DIRECTORY = (SQLITE_READONLY | (6 << 8)), + SQLITE_ABORT_ROLLBACK = (SQLITE_ABORT | (2 << 8)), + SQLITE_CONSTRAINT_CHECK = (SQLITE_CONSTRAINT | (1 << 8)), + SQLITE_CONSTRAINT_COMMITHOOK = (SQLITE_CONSTRAINT | (2 << 8)), + SQLITE_CONSTRAINT_FOREIGNKEY = (SQLITE_CONSTRAINT | (3 << 8)), + SQLITE_CONSTRAINT_FUNCTION = (SQLITE_CONSTRAINT | (4 << 8)), + SQLITE_CONSTRAINT_NOTNULL = (SQLITE_CONSTRAINT | (5 << 8)), + SQLITE_CONSTRAINT_PRIMARYKEY = (SQLITE_CONSTRAINT | (6 << 8)), + SQLITE_CONSTRAINT_TRIGGER = (SQLITE_CONSTRAINT | (7 << 8)), + SQLITE_CONSTRAINT_UNIQUE = (SQLITE_CONSTRAINT | (8 << 8)), + SQLITE_CONSTRAINT_VTAB = (SQLITE_CONSTRAINT | (9 << 8)), + SQLITE_CONSTRAINT_ROWID = (SQLITE_CONSTRAINT |(10 << 8)), + QLITE_CONSTRAINT_PINNED = (SQLITE_CONSTRAINT |(11 << 8)), + SQLITE_NOTICE_RECOVER_WAL = (SQLITE_NOTICE | (1 << 8)), + SQLITE_NOTICE_RECOVER_ROLLBACK = (SQLITE_NOTICE | (2 << 8)), + SQLITE_WARNING_AUTOINDEX = (SQLITE_WARNING | (1 << 8)), + SQLITE_AUTH_USER = (SQLITE_AUTH | (1 << 8)), + SQLITE_OK_LOAD_PERMANENTLY = (SQLITE_OK | (1 << 8)), + SQLITE_OK_SYMLINK = (SQLITE_OK | (2 << 8)) +} + +/** +* CAPI3REF: Flags For File Open Operations +*/ +enum +{ + SQLITE_OPEN_READONLY = 0x00000001, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_READWRITE = 0x00000002, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_CREATE = 0x00000004, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_DELETEONCLOSE = 0x00000008, /** VFS only */ + SQLITE_OPEN_EXCLUSIVE = 0x00000010, /** VFS only */ + SQLITE_OPEN_AUTOPROXY = 0x00000020, /** VFS only */ + SQLITE_OPEN_URI = 0x00000040, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_MEMORY = 0x00000080, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_MAIN_DB = 0x00000100, /** VFS only */ + SQLITE_OPEN_TEMP_DB = 0x00000200, /** VFS only */ + SQLITE_OPEN_TRANSIENT_DB = 0x00000400, /** VFS only */ + SQLITE_OPEN_MAIN_JOURNAL = 0x00000800, /** VFS only */ + SQLITE_OPEN_TEMP_JOURNAL = 0x00001000, /** VFS only */ + SQLITE_OPEN_SUBJOURNAL = 0x00002000, /** VFS only */ + SQLITE_OPEN_SUPER_JOURNAL = 0x00004000, /** VFS only */ + SQLITE_OPEN_NOMUTEX = 0x00008000, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_FULLMUTEX = 0x00010000, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_SHAREDCACHE = 0x00020000, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_PRIVATECACHE = 0x00040000, /** Ok for sqlite3_open_v2() */ + SQLITE_OPEN_WAL = 0x00080000, /** VFS only */ + SQLITE_OPEN_NOFOLLOW = 0x01000000 /** Ok for sqlite3_open_v2() */ +} + +deprecated ("Legacy compatibility") +{ + alias SQLITE_OPEN_MASTER_JOURNAL = SQLITE_OPEN_SUPER_JOURNAL; /** VFS only */ +} + +/** +* CAPI3REF: Device Characteristics +*/ +enum +{ + SQLITE_IOCAP_ATOMIC = 0x00000001, + SQLITE_IOCAP_ATOMIC512 = 0x00000002, + SQLITE_IOCAP_ATOMIC1K = 0x00000004, + SQLITE_IOCAP_ATOMIC2K = 0x00000008, + SQLITE_IOCAP_ATOMIC4K = 0x00000010, + SQLITE_IOCAP_ATOMIC8K = 0x00000020, + SQLITE_IOCAP_ATOMIC16K = 0x00000040, + SQLITE_IOCAP_ATOMIC32K = 0x00000080, + SQLITE_IOCAP_ATOMIC64K = 0x00000100, + SQLITE_IOCAP_SAFE_APPEND = 0x00000200, + SQLITE_IOCAP_SEQUENTIAL = 0x00000400, + SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN = 0x00000800, + SQLITE_IOCAP_POWERSAFE_OVERWRITE = 0x00001000, + SQLITE_IOCAP_IMMUTABLE = 0x00002000, + SQLITE_IOCAP_BATCH_ATOMIC = 0x00004000 +} + +/** +* CAPI3REF: File Locking Levels +*/ +enum +{ + SQLITE_LOCK_NONE = 0, + SQLITE_LOCK_SHARED = 1, + SQLITE_LOCK_RESERVED = 2, + SQLITE_LOCK_PENDING = 3, + SQLITE_LOCK_EXCLUSIVE = 4 +} + +/** +* CAPI3REF: Synchronization Type Flags +*/ +enum +{ + SQLITE_SYNC_NORMAL = 0x00002, + SQLITE_SYNC_FULL = 0x00003, + SQLITE_SYNC_DATAONLY = 0x00010 +} + +/** +* CAPI3REF: OS Interface Open File Handle +*/ +struct sqlite3_file +{ + const(sqlite3_io_methods)*pMethods; /* Methods for an open file */ +} + +/** +* CAPI3REF: OS Interface File Virtual Methods Object +*/ + +struct sqlite3_io_methods +{ + int iVersion; + int function (sqlite3_file*) xClose; + int function (sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst) xRead; + int function (sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst) xWrite; + int function (sqlite3_file*, sqlite3_int64 size) xTruncate; + int function (sqlite3_file*, int flags) xSync; + int function (sqlite3_file*, sqlite3_int64 *pSize) xFileSize; + int function (sqlite3_file*, int) xLock; + int function (sqlite3_file*, int) xUnlock; + int function (sqlite3_file*, int *pResOut) xCheckReservedLock; + int function (sqlite3_file*, int op, void *pArg) xFileControl; + int function (sqlite3_file*) xSectorSize; + int function (sqlite3_file*) xDeviceCharacteristics; + /* Methods above are valid for version 1 */ + int function (sqlite3_file*, int iPg, int pgsz, int, void **) xShmMap; + int function (sqlite3_file*, int offset, int n, int flags) xShmLock; + void function (sqlite3_file*) xShmBarrier; + int function (sqlite3_file*, int deleteFlag) xShmUnmap; + /* Methods above are valid for version 2 */ + /* Additional methods may be added in future releases */ + int function (sqlite3_file*, sqlite3_int64 iOfst, int iAmt, void **pp) xFetch; + int function (sqlite3_file*, sqlite3_int64 iOfst, void *p) xUnfetch; +} + +/** +* CAPI3REF: Standard File Control Opcodes +*/ +enum +{ + SQLITE_FCNTL_LOCKSTATE = 1, + SQLITE_FCNTL_GET_LOCKPROXYFILE = 2, + SQLITE_FCNTL_SET_LOCKPROXYFILE = 3, + SQLITE_FCNTL_LAST_ERRNO = 4, + SQLITE_FCNTL_SIZE_HINT = 5, + SQLITE_FCNTL_CHUNK_SIZE = 6, + SQLITE_FCNTL_FILE_POINTER = 7, + SQLITE_FCNTL_SYNC_OMITTED = 8, + SQLITE_FCNTL_WIN32_AV_RETRY = 9, + SQLITE_FCNTL_PERSIST_WAL = 10, + SQLITE_FCNTL_OVERWRITE = 11, + SQLITE_FCNTL_VFSNAME = 12, + SQLITE_FCNTL_POWERSAFE_OVERWRITE = 13, + SQLITE_FCNTL_PRAGMA = 14, + SQLITE_FCNTL_BUSYHANDLER = 15, + SQLITE_FCNTL_TEMPFILENAME = 16, + SQLITE_FCNTL_MMAP_SIZE = 18, + SQLITE_FCNTL_TRACE = 19, + SQLITE_FCNTL_HAS_MOVED = 20, + SQLITE_FCNTL_SYNC = 21, + SQLITE_FCNTL_COMMIT_PHASETWO = 22, + SQLITE_FCNTL_WIN32_SET_HANDLE = 23, + SQLITE_FCNTL_WAL_BLOCK = 24, + SQLITE_FCNTL_ZIPVFS = 25, + SQLITE_FCNTL_RBU = 26, + SQLITE_FCNTL_VFS_POINTER = 27, + SQLITE_FCNTL_JOURNAL_POINTER = 28, + SQLITE_FCNTL_WIN32_GET_HANDLE = 29, + SQLITE_FCNTL_PDB = 30, + SQLITE_FCNTL_BEGIN_ATOMIC_WRITE = 31, + SQLITE_FCNTL_COMMIT_ATOMIC_WRITE = 32, + SQLITE_FCNTL_ROLLBACK_ATOMIC_WRITE = 33, + SQLITE_FCNTL_LOCK_TIMEOUT = 34, + SQLITE_FCNTL_DATA_VERSION = 35, + SQLITE_FCNTL_SIZE_LIMIT = 36, + SQLITE_FCNTL_CKPT_DONE = 37, + SQLITE_FCNTL_RESERVE_BYTES = 38, + SQLITE_FCNTL_CKPT_START = 39 +} + +deprecated ("deprecated names") +{ + alias SQLITE_GET_LOCKPROXYFILE = SQLITE_FCNTL_GET_LOCKPROXYFILE; + alias SQLITE_SET_LOCKPROXYFILE = SQLITE_FCNTL_SET_LOCKPROXYFILE; + alias SQLITE_LAST_ERRNO = SQLITE_FCNTL_LAST_ERRNO; +} + +/** +* CAPI3REF: Mutex Handle +*/ +struct sqlite3_mutex; + +/** +* CAPI3REF: Loadable Extension Thunk +*/ +struct sqlite3_api_routines; + +/** +* CAPI3REF: OS Interface Object +*/ + +alias xDlSymReturn = void * function(); +/// Ditto +alias sqlite3_syscall_ptr = void function(); + +struct sqlite3_vfs +{ + int iVersion; /** Structure version number (currently 2) */ + int szOsFile; /** Size of subclassed sqlite3_file */ + int mxPathname; /** Maximum file pathname length */ + sqlite3_vfs *pNext; /** Next registered VFS */ + const(char)*zName; /** Name of this virtual file system */ + void *pAppData; /** Pointer to application-specific data */ + int function (sqlite3_vfs*, const char *zName, sqlite3_file*, + int flags, int *pOutFlags) xOpen; + int function (sqlite3_vfs*, const char *zName, int syncDir) xDelete; + int function (sqlite3_vfs*, const char *zName, int flags, int *pResOut) xAccess; + int function (sqlite3_vfs*, const char *zName, int nOut, char *zOut) xFullPathname; + void* function (sqlite3_vfs*, const char *zFilename) xDlOpen; + void function (sqlite3_vfs*, int nByte, char *zErrMsg) xDlError; + xDlSymReturn function (sqlite3_vfs*,void*, const char *zSymbol) *xDlSym; + void function (sqlite3_vfs*, void*) xDlClose; + int function (sqlite3_vfs*, int nByte, char *zOut) xRandomness; + int function (sqlite3_vfs*, int microseconds) xSleep; + int function (sqlite3_vfs*, double*) xCurrentTime; + int function (sqlite3_vfs*, int, char *) xGetLastError; + /* + ** The methods above are in version 1 of the sqlite_vfs object + ** definition. Those that follow are added in version 2 or later + */ + int function (sqlite3_vfs*, sqlite3_int64*) xCurrentTimeInt64; + /* + ** The methods above are in versions 1 and 2 of the sqlite_vfs object. + ** Those below are for version 3 and greater. + */ + int function(sqlite3_vfs*, const char * zName, sqlite3_syscall_ptr) xSetSystemCall; + sqlite3_syscall_ptr function(sqlite3_vfs*, const char * zName) xGetSystemCall; + const(char)* function(sqlite3_vfs*, const char * zName) xNextSystemCall; + /* + ** The methods above are in versions 1 through 3 of the sqlite_vfs object. + ** New fields may be appended in figure versions. The iVersion + ** value will increment whenever this happens. + */ +} + +/** +* CAPI3REF: Flags for the xAccess VFS method +*/ +enum +{ + SQLITE_ACCESS_EXISTS = 0, + + SQLITE_ACCESS_READWRITE = 1, /** Used by PRAGMA temp_store_directory */ + SQLITE_ACCESS_READ = 2 /** Unused */ +} + +/** +* CAPI3REF: Flags for the xShmLock VFS method +*/ +enum +{ + SQLITE_SHM_UNLOCK = 1, + SQLITE_SHM_LOCK = 2, + SQLITE_SHM_SHARED = 4, + SQLITE_SHM_EXCLUSIVE = 8 +} + +/** +* CAPI3REF: Maximum xShmLock index +*/ +enum SQLITE_SHM_NLOCK = 8; + + +/** +* CAPI3REF: Initialize The SQLite Library +*/ +int sqlite3_initialize(); +/// Ditto +int sqlite3_shutdown(); +/// Ditto +int sqlite3_os_init(); +/// Ditto +int sqlite3_os_end(); + +/** +* CAPI3REF: Configuring The SQLite Library +*/ +int sqlite3_config(int, ...); + +/** +* CAPI3REF: Configure database connections +*/ +int sqlite3_db_config(sqlite3*, int op, ...); + +/** +* CAPI3REF: Memory Allocation Routines +*/ +struct sqlite3_mem_methods +{ + void* function (int) xMalloc; /** Memory allocation function */ + void function (void*) xFree; /** Free a prior allocation */ + void* function (void*,int) xRealloc; /** Resize an allocation */ + int function (void*) xSize; /** Return the size of an allocation */ + int function (int) xRoundup; /** Round up request size to allocation size */ + int function (void*) xInit; /** Initialize the memory allocator */ + void function (void*) xShutdown; /** Deinitialize the memory allocator */ + void *pAppData; /** Argument to xInit() and xShutdown() */ +} + +/** +* CAPI3REF: Configuration Options +*/ +enum +{ + SQLITE_CONFIG_SINGLETHREAD = 1, /** nil */ + SQLITE_CONFIG_MULTITHREAD = 2, /** nil */ + SQLITE_CONFIG_SERIALIZED = 3, /** nil */ + SQLITE_CONFIG_MALLOC = 4, /** sqlite3_mem_methods* */ + SQLITE_CONFIG_GETMALLOC = 5, /** sqlite3_mem_methods* */ + SQLITE_CONFIG_SCRATCH = 6, /** No longer used */ + SQLITE_CONFIG_PAGECACHE = 7, /** void*, int sz, int N */ + SQLITE_CONFIG_HEAP = 8, /** void*, int nByte, int min */ + SQLITE_CONFIG_MEMSTATUS = 9, /** boolean */ + SQLITE_CONFIG_MUTEX = 10, /** sqlite3_mutex_methods* */ + SQLITE_CONFIG_GETMUTEX = 11, /** sqlite3_mutex_methods* */ +/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ + SQLITE_CONFIG_LOOKASIDE = 13, /** int int */ + SQLITE_CONFIG_PCACHE = 14, /** no-op */ + SQLITE_CONFIG_GETPCACHE = 15, /** no-op */ + SQLITE_CONFIG_LOG = 16, /** xFunc, void* */ + SQLITE_CONFIG_URI = 17, /** int */ + SQLITE_CONFIG_PCACHE2 = 18, /** sqlite3_pcache_methods2* */ + SQLITE_CONFIG_GETPCACHE2 = 19, /** sqlite3_pcache_methods2* */ + SQLITE_CONFIG_COVERING_INDEX_SCAN = 20, /** int */ + SQLITE_CONFIG_SQLLOG = 21, /** xSqllog, void* */ + SQLITE_CONFIG_MMAP_SIZE = 22, /** sqlite3_int64, sqlite3_int64 */ + SQLITE_CONFIG_WIN32_HEAPSIZE = 23, /** int nByte */ + SQLITE_CONFIG_PCACHE_HDRSZ = 24, /** int *psz */ + SQLITE_CONFIG_PMASZ = 25, /** unsigned int szPma */ + SQLITE_CONFIG_STMTJRNL_SPILL = 26, /** int nByte */ + SQLITE_CONFIG_SMALL_MALLOC = 27, /** boolean */ + SQLITE_CONFIG_SORTERREF_SIZE = 28, /** int nByte */ + SQLITE_CONFIG_MEMDB_MAXSIZE = 29 /** sqlite3_int64 */ +} + +/** +* CAPI3REF: Database Connection Configuration Options +*/ +enum +{ + SQLITE_DBCONFIG_MAINDBNAME = 1000, /** const char* */ + SQLITE_DBCONFIG_LOOKASIDE = 1001, /** void* int int */ + SQLITE_DBCONFIG_ENABLE_FKEY = 1002, /** int int* */ + SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003, /** int int* */ + SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004, /** int int* */ + SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005, /** int int* */ + SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006, /** int int* */ + SQLITE_DBCONFIG_ENABLE_QPSG = 1007, /** int int* */ + SQLITE_DBCONFIG_TRIGGER_EQP = 1008, /** int int* */ + SQLITE_DBCONFIG_RESET_DATABASE = 1009, /** int int* */ + SQLITE_DBCONFIG_DEFENSIVE = 1010, /** int int* */ + SQLITE_DBCONFIG_WRITABLE_SCHEMA = 1011, /** int int* */ + SQLITE_DBCONFIG_LEGACY_ALTER_TABLE = 1012, /** int int* */ + SQLITE_DBCONFIG_DQS_DML = 1013, /** int int* */ + SQLITE_DBCONFIG_DQS_DDL = 1014, /** int int* */ + SQLITE_DBCONFIG_ENABLE_VIEW = 1015, /** int int* */ + SQLITE_DBCONFIG_LEGACY_FILE_FORMAT = 1016, /** int int* */ + SQLITE_DBCONFIG_TRUSTED_SCHEMA = 1017, /** int int* */ + SQLITE_DBCONFIG_MAX = 1017 /** Largest DBCONFIG */ +} + + +/** +* CAPI3REF: Enable Or Disable Extended Result Codes +*/ +int sqlite3_extended_result_codes(sqlite3*, int onoff); + +/** +* CAPI3REF: Last Insert Rowid +*/ +sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*); + +/** +* CAPI3REF: Set the Last Insert Rowid value +*/ +void sqlite3_set_last_insert_rowid(sqlite3*,sqlite3_int64); + +/** +* CAPI3REF: Count The Number Of Rows Modified +*/ +int sqlite3_changes(sqlite3*); + +/** +* CAPI3REF: Total Number Of Rows Modified +*/ +int sqlite3_total_changes(sqlite3*); + +/** +* CAPI3REF: Interrupt A Long-Running Query +*/ +void sqlite3_interrupt(sqlite3*); + +/** +* CAPI3REF: Determine If An SQL Statement Is Complete +*/ +int sqlite3_complete(const char *sql); +/// Ditto +int sqlite3_complete16(const void *sql); + +/** +* CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors +*/ +int sqlite3_busy_handler(sqlite3*, int function (void*,int), void*); + +/** +* CAPI3REF: Set A Busy Timeout +*/ +int sqlite3_busy_timeout(sqlite3*, int ms); + +/** +* CAPI3REF: Convenience Routines For Running Queries +*/ +int sqlite3_get_table( + sqlite3 *db, /** An open database */ + const(char)*zSql, /** SQL to be evaluated */ + char ***pazResult, /** Results of the query */ + int *pnRow, /** Number of result rows written here */ + int *pnColumn, /** Number of result columns written here */ + char **pzErrmsg /** Error msg written here */ +); +/// +void sqlite3_free_table(char **result); + +/** +* CAPI3REF: Formatted String Printing Functions +*/ +char *sqlite3_mprintf(const char*,...); +char *sqlite3_vmprintf(const char*, va_list); +char *sqlite3_snprintf(int,char*,const char*, ...); +char *sqlite3_vsnprintf(int,char*,const char*, va_list); + +/** +* CAPI3REF: Memory Allocation Subsystem +*/ +void *sqlite3_malloc(int); +/// Ditto +void *sqlite3_malloc64(sqlite3_uint64); +/// Ditto +void *sqlite3_realloc(void*, int); +/// Ditto +void *sqlite3_realloc64(void*, sqlite3_uint64); +/// Ditto +void sqlite3_free(void*); +/// Ditto +sqlite3_uint64 sqlite3_msize(void*); + +/** +* CAPI3REF: Memory Allocator Statistics +*/ +sqlite3_int64 sqlite3_memory_used(); +sqlite3_int64 sqlite3_memory_highwater(int resetFlag); + +/** +* CAPI3REF: Pseudo-Random Number Generator +*/ +void sqlite3_randomness(int N, void *P); + +/** +* CAPI3REF: Compile-Time Authorization Callbacks +*/ +int sqlite3_set_authorizer( + sqlite3*, + int function (void*,int,const char*,const char*,const char*,const char*) xAuth, + void *pUserData +); + +/** +* CAPI3REF: Authorizer Return Codes +*/ +enum +{ + SQLITE_DENY = 1, /** Abort the SQL statement with an error */ + SQLITE_IGNORE = 2 /** Don't allow access, but don't generate an error */ +} + +/** +* CAPI3REF: Authorizer Action Codes +*/ +/******************************************* 3rd ************ 4th ***********/ +enum +{ + SQLITE_CREATE_INDEX = 1, /** Index Name Table Name */ + SQLITE_CREATE_TABLE = 2, /** Table Name NULL */ + SQLITE_CREATE_TEMP_INDEX = 3, /** Index Name Table Name */ + SQLITE_CREATE_TEMP_TABLE = 4, /** Table Name NULL */ + SQLITE_CREATE_TEMP_TRIGGER = 5, /** Trigger Name Table Name */ + SQLITE_CREATE_TEMP_VIEW = 6, /** View Name NULL */ + SQLITE_CREATE_TRIGGER = 7, /** Trigger Name Table Name */ + SQLITE_CREATE_VIEW = 8, /** View Name NULL */ + SQLITE_DELETE = 9, /** Table Name NULL */ + SQLITE_DROP_INDEX = 10, /** Index Name Table Name */ + SQLITE_DROP_TABLE = 11, /** Table Name NULL */ + SQLITE_DROP_TEMP_INDEX = 12, /** Index Name Table Name */ + SQLITE_DROP_TEMP_TABLE = 13, /** Table Name NULL */ + SQLITE_DROP_TEMP_TRIGGER = 14, /** Trigger Name Table Name */ + SQLITE_DROP_TEMP_VIEW = 15, /** View Name NULL */ + SQLITE_DROP_TRIGGER = 16, /** Trigger Name Table Name */ + SQLITE_DROP_VIEW = 17, /** View Name NULL */ + SQLITE_INSERT = 18, /** Table Name NULL */ + SQLITE_PRAGMA = 19, /** Pragma Name 1st arg or NULL */ + SQLITE_READ = 20, /** Table Name Column Name */ + SQLITE_SELECT = 21, /** NULL NULL */ + SQLITE_TRANSACTION = 22, /** Operation NULL */ + SQLITE_UPDATE = 23, /** Table Name Column Name */ + SQLITE_ATTACH = 24, /** Filename NULL */ + SQLITE_DETACH = 25, /** Database Name NULL */ + SQLITE_ALTER_TABLE = 26, /** Database Name Table Name */ + SQLITE_REINDEX = 27, /** Index Name NULL */ + SQLITE_ANALYZE = 28, /** Table Name NULL */ + SQLITE_CREATE_VTABLE = 29, /** Table Name Module Name */ + SQLITE_DROP_VTABLE = 30, /** Table Name Module Name */ + SQLITE_FUNCTION = 31, /** NULL Function Name */ + SQLITE_SAVEPOINT = 32, /** Operation Savepoint Name */ + SQLITE_COPY = 0, /** No longer used */ + SQLITE_RECURSIVE = 33 /** NULL NULL */ +} + +/** +* CAPI3REF: Tracing And Profiling Functions +*/ +deprecated void *sqlite3_trace(sqlite3*, void function (void*,const char*) xTrace, void*); +/// Ditto +deprecated void *sqlite3_profile(sqlite3*, void function (void*,const char*,sqlite3_uint64) xProfile, void*); + +/** +* CAPI3REF: SQL Trace Event Codes +*/ +enum +{ + SQLITE_TRACE_STMT = 0x01, + SQLITE_TRACE_PROFILE = 0x02, + SQLITE_TRACE_ROW = 0x04, + SQLITE_TRACE_CLOSE = 0x08 +} + +/** +* CAPI3REF: SQL Trace Hook +*/ +int sqlite3_trace_v2( + sqlite3*, + uint uMask, + int function (uint, void*, void*, void*) xCallback, + void* pCtx +); + +/** +* CAPI3REF: Query Progress Callbacks +*/ +void sqlite3_progress_handler(sqlite3*, int, int function (void*), void*); + +/** +* CAPI3REF: Opening A New Database Connection +*/ +int sqlite3_open( + const(char)*filename, /** Database filename (UTF-8) */ + sqlite3 **ppDb /** OUT: SQLite db handle */ +); +/// Ditto +int sqlite3_open16( + const(void)*filename, /** Database filename (UTF-16) */ + sqlite3 **ppDb /** OUT: SQLite db handle */ +); +/// Ditto +int sqlite3_open_v2( + const(char)*filename, /** Database filename (UTF-8) */ + sqlite3 **ppDb, /** OUT: SQLite db handle */ + int flags, /** Flags */ + const(char)*zVfs /** Name of VFS module to use */ +); + +/* +* CAPI3REF: Obtain Values For URI Parameters +*/ +const(char)* sqlite3_uri_parameter(const(char)* zFilename, const(char)* zParam); +/// Ditto +int sqlite3_uri_boolean(const(char)* zFile, const(char)* zParam, int bDefault); +/// Ditto +sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64); +/// Ditto +const(char)* sqlite3_uri_key(const(char)* zFilename, int N); + +/* +* CAPI3REF: Translate filenames +*/ +const(char)* sqlite3_filename_database(const(char)*); +/// Ditto +const(char)* sqlite3_filename_journal(const(char)*); +/// Ditto +const(char)* sqlite3_filename_wal(const(char)*); + +/* +* CAPI3REF: Database File Corresponding To A Journal +*/ +sqlite3_file* sqlite3_database_file_object(const(char)*); + +/* +* CAPI3REF: Create and Destroy VFS Filenames +*/ +char* sqlite3_create_filename( + const(char)* zDatabase, + const(char)* zJournal, + const(char)* zWal, + int nParam, + const(char*)* azParam +); +/// Ditto +void sqlite3_free_filename(char*); + +/** +* CAPI3REF: Error Codes And Messages +*/ +int sqlite3_errcode(sqlite3 *db); +/// Ditto +int sqlite3_extended_errcode(sqlite3 *db); +/// Ditto +const(char)* sqlite3_errmsg(sqlite3*); +/// Ditto +const(void)* sqlite3_errmsg16(sqlite3*); +/// Ditto +const(char)* sqlite3_errstr(int); + +/** +* CAPI3REF: SQL Statement Object +*/ +struct sqlite3_stmt; + +/** +* CAPI3REF: Run-time Limits +*/ +int sqlite3_limit(sqlite3*, int id, int newVal); + +/** +* CAPI3REF: Run-Time Limit Categories +*/ +enum +{ + SQLITE_LIMIT_LENGTH = 0, + SQLITE_LIMIT_SQL_LENGTH = 1, + SQLITE_LIMIT_COLUMN = 2, + SQLITE_LIMIT_EXPR_DEPTH = 3, + SQLITE_LIMIT_COMPOUND_SELECT = 4, + SQLITE_LIMIT_VDBE_OP = 5, + SQLITE_LIMIT_FUNCTION_ARG = 6, + SQLITE_LIMIT_ATTACHED = 7, + SQLITE_LIMIT_LIKE_PATTERN_LENGTH = 8, + SQLITE_LIMIT_VARIABLE_NUMBER = 9, + SQLITE_LIMIT_TRIGGER_DEPTH = 10, + SQLITE_LIMIT_WORKER_THREADS = 11 +} + +/** +* CAPI3REF: Prepare Flags +*/ +enum +{ + SQLITE_PREPARE_PERSISTENT = 0x01, + SQLITE_PREPARE_NORMALIZE = 0x02, + SQLITE_PREPARE_NO_VTAB = 0x04 +} + +/** +* CAPI3REF: Compiling An SQL Statement +*/ +int sqlite3_prepare( + sqlite3 *db, /** Database handle */ + const(char)*zSql, /** SQL statement, UTF-8 encoded */ + int nByte, /** Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /** OUT: Statement handle */ + const(char*)*pzTail /** OUT: Pointer to unused portion of zSql */ +); +/// Ditto +int sqlite3_prepare_v2( + sqlite3 *db, /** Database handle */ + const(char)*zSql, /** SQL statement, UTF-8 encoded */ + int nByte, /** Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /** OUT: Statement handle */ + const(char*)*pzTail /** OUT: Pointer to unused portion of zSql */ +); +/// Ditto +int sqlite3_prepare_v3( + sqlite3 *db, /** Database handle */ + const(char)* zSql, /** SQL statement, UTF-8 encoded */ + int nByte, /** Maximum length of zSql in bytes. */ + uint prepFlags, /** Zero or more SQLITE_PREPARE_ flags */ + sqlite3_stmt **ppStmt, /* OUT: Statement handle */ + const(char*)*pzTail /* OUT: Pointer to unused portion of zSql */ +); +/// Ditto +int sqlite3_prepare16( + sqlite3 *db, /** Database handle */ + const(void)*zSql, /** SQL statement, UTF-16 encoded */ + int nByte, /** Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /** OUT: Statement handle */ + const(void*)*pzTail /** OUT: Pointer to unused portion of zSql */ +); +/// Ditto +int sqlite3_prepare16_v2( + sqlite3 *db, /** Database handle */ + const(void)*zSql, /** SQL statement, UTF-16 encoded */ + int nByte, /** Maximum length of zSql in bytes. */ + sqlite3_stmt **ppStmt, /** OUT: Statement handle */ + const(void*)*pzTail /** OUT: Pointer to unused portion of zSql */ +); +/// Ditto +int sqlite3_prepare16_v3( + sqlite3 *db, /** Database handle */ + const(void)*zSql, /** SQL statement, UTF-16 encoded */ + int nByte, /** Maximum length of zSql in bytes. */ + uint prepFlags, /** Zero or more SQLITE_PREPARE_ flags */ + sqlite3_stmt **ppStmt, /** OUT: Statement handle */ + const(void*)*pzTail /** OUT: Pointer to unused portion of zSql */ +); + +/** +* CAPI3REF: Retrieving Statement SQL +*/ +const(char)* sqlite3_sql(sqlite3_stmt *pStmt); +/// Ditto +char* sqlite3_expanded_sql(sqlite3_stmt *pStmt); +const(char)* sqlite3_normalized_sql(sqlite3_stmt *pStmt); + +/* +* CAPI3REF: Determine If An SQL Statement Writes The Database +*/ +int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); + +/* +* CAPI3REF: Query The EXPLAIN Setting For A Prepared Statement +*/ +int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt); + +/** +* CAPI3REF: Determine If A Prepared Statement Has Been Reset +*/ +int sqlite3_stmt_busy(sqlite3_stmt*); + + +/** +* CAPI3REF: Dynamically Typed Value Object +*/ +struct sqlite3_value; + +/** +* CAPI3REF: SQL Function Context Object +*/ +struct sqlite3_context; + +/** +* CAPI3REF: Binding Values To Prepared Statements +*/ +int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void function (void*)); +/// Ditto +int sqlite3_bind_blob64(sqlite3_stmt*, int, const void*, sqlite3_uint64,void function (void*)); +/// Ditto +int sqlite3_bind_double(sqlite3_stmt*, int, double); +/// Ditto +int sqlite3_bind_int(sqlite3_stmt*, int, int); +/// Ditto +int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64); +/// Ditto +int sqlite3_bind_null(sqlite3_stmt*, int); +/// Ditto +int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void function (void*)); +/// Ditto +int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void function (void*)); +/// Ditto +int sqlite3_bind_text64(sqlite3_stmt*, int, const char*, sqlite3_uint64,void function (void*), ubyte encoding); +/// Ditto +int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*); +/// Ditto +int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n); +/// Ditto +int sqlite3_bind_zeroblob64(sqlite3_stmt*, int, sqlite3_uint64 n); + +/** +* CAPI3REF: Number Of SQL Parameters +*/ +int sqlite3_bind_parameter_count(sqlite3_stmt*); + +/** +* CAPI3REF: Name Of A Host Parameter +*/ +const(char)* sqlite3_bind_parameter_name(sqlite3_stmt*, int); + +/** +* CAPI3REF: Index Of A Parameter With A Given Name +*/ +int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); + +/** +* CAPI3REF: Reset All Bindings On A Prepared Statement +*/ +int sqlite3_clear_bindings(sqlite3_stmt*); + +/** +* CAPI3REF: Number Of Columns In A Result Set +*/ +int sqlite3_column_count(sqlite3_stmt *pStmt); + +/** +* CAPI3REF: Column Names In A Result Set +*/ +const(char)* sqlite3_column_name(sqlite3_stmt*, int N); +/// Ditto +const(void)* sqlite3_column_name16(sqlite3_stmt*, int N); + +/** +* CAPI3REF: Source Of Data In A Query Result +*/ +const(char)* sqlite3_column_database_name(sqlite3_stmt*,int); +/// Ditto +const(void)* sqlite3_column_database_name16(sqlite3_stmt*,int); +/// Ditto +const(char)* sqlite3_column_table_name(sqlite3_stmt*,int); +/// Ditto +const (void)* sqlite3_column_table_name16(sqlite3_stmt*,int); +/// Ditto +const (char)* sqlite3_column_origin_name(sqlite3_stmt*,int); +/// Ditto +const (void)* sqlite3_column_origin_name16(sqlite3_stmt*,int); + +/** +* CAPI3REF: Declared Datatype Of A Query Result +*/ +const (char)* sqlite3_column_decltype(sqlite3_stmt*,int); +/// Ditto +const (void)* sqlite3_column_decltype16(sqlite3_stmt*,int); + +/** +* CAPI3REF: Evaluate An SQL Statement +*/ +int sqlite3_step(sqlite3_stmt*); + +/** +* CAPI3REF: Number of columns in a result set +*/ +int sqlite3_data_count(sqlite3_stmt *pStmt); + +/** +* CAPI3REF: Fundamental Datatypes +*/ +enum +{ + SQLITE_INTEGER = 1, + SQLITE_FLOAT = 2, + SQLITE_BLOB = 4, + SQLITE_NULL = 5, + SQLITE3_TEXT = 3 +} + +/** +* CAPI3REF: Result Values From A Query +*/ +const (void)* sqlite3_column_blob(sqlite3_stmt*, int iCol); +/// Ditto +double sqlite3_column_double(sqlite3_stmt*, int iCol); +/// Ditto +int sqlite3_column_int(sqlite3_stmt*, int iCol); +/// Ditto +sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); +/// Ditto +const (char)* sqlite3_column_text(sqlite3_stmt*, int iCol); +/// Ditto +const (void)* sqlite3_column_text16(sqlite3_stmt*, int iCol); +/// Ditto +sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol); +/// Ditto +int sqlite3_column_bytes(sqlite3_stmt*, int iCol); +/// Ditto +int sqlite3_column_bytes16(sqlite3_stmt*, int iCol); +/// Ditto +int sqlite3_column_type(sqlite3_stmt*, int iCol); + +/** +* CAPI3REF: Destroy A Prepared Statement Object +*/ +int sqlite3_finalize(sqlite3_stmt *pStmt); + +/** +* CAPI3REF: Reset A Prepared Statement Object +*/ +int sqlite3_reset(sqlite3_stmt *pStmt); + +/** +* CAPI3REF: Create Or Redefine SQL Functions +*/ +int sqlite3_create_function( + sqlite3 *db, + const(char)*zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void function (sqlite3_context*,int,sqlite3_value**) xFunc, + void function (sqlite3_context*,int,sqlite3_value**) xStep, + void function (sqlite3_context*) xFinal +); +/// Ditto +int sqlite3_create_function16( + sqlite3 *db, + const(void)*zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void function (sqlite3_context*,int,sqlite3_value**) xFunc, + void function (sqlite3_context*,int,sqlite3_value**) xStep, + void function (sqlite3_context*) xFinal +); +/// Ditto +int sqlite3_create_function_v2( + sqlite3 *db, + const(char)*zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void function (sqlite3_context*,int,sqlite3_value**) xFunc, + void function (sqlite3_context*,int,sqlite3_value**) xStep, + void function (sqlite3_context*) xFinal, + void function (void*) xDestroy +); +/// Ditto +int sqlite3_create_window_function( + sqlite3 *db, + const(char)*zFunctionName, + int nArg, + int eTextRep, + void *pApp, + void function (sqlite3_context*,int,sqlite3_value**) xStep, + void function (sqlite3_context*) xFinal, + void function (sqlite3_context*) xValue, + void function (sqlite3_context*,int,sqlite3_value**) xInverse, + void function (void*) xDestroy +); + +/** +* CAPI3REF: Text Encodings +* +* These constant define integer codes that represent the various +* text encodings supported by SQLite. +*/ +enum +{ + SQLITE_UTF8 = 1, /** IMP: R-37514-35566 */ + SQLITE_UTF16LE = 2, /** IMP: R-03371-37637 */ + SQLITE_UTF16BE = 3, /** IMP: R-51971-34154 */ + SQLITE_UTF16 = 4, /** Use native byte order */ + SQLITE_ANY = 5, /** sqlite3_create_function only */ + SQLITE_UTF16_ALIGNED = 8 /** sqlite3_create_collation only */ +} + +/** +* CAPI3REF: Function Flags +*/ +enum SQLITE_DETERMINISTIC = 0x000000800; +enum SQLITE_DIRECTONLY = 0x000080000; +enum SQLITE_SUBTYPE = 0x000100000; +enum SQLITE_INNOCUOUS = 0x000200000; + +/** +* CAPI3REF: Deprecated Functions +*/ +deprecated int sqlite3_aggregate_count(sqlite3_context*); +deprecated int sqlite3_expired(sqlite3_stmt*); +deprecated int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*); +deprecated int sqlite3_global_recover(); +deprecated void sqlite3_thread_cleanup(); +deprecated int sqlite3_memory_alarm(void function(void*,sqlite3_int64,int),void*,sqlite3_int64); + +/** +* CAPI3REF: Obtaining SQL Function Parameter Values +*/ +const (void)* sqlite3_value_blob(sqlite3_value*); +/// Ditto +int sqlite3_value_bytes(sqlite3_value*); +/// Ditto +int sqlite3_value_bytes16(sqlite3_value*); +/// Ditto +double sqlite3_value_double(sqlite3_value*); +/// Ditto +int sqlite3_value_int(sqlite3_value*); +/// Ditto +sqlite3_int64 sqlite3_value_int64(sqlite3_value*); +/// Ditto +const (char)* sqlite3_value_text(sqlite3_value*); +/// Ditto +const (void)* sqlite3_value_text16(sqlite3_value*); +/// Ditto +const (void)* sqlite3_value_text16le(sqlite3_value*); +/// Ditto +const (void)* sqlite3_value_text16be(sqlite3_value*); +/// Ditto +int sqlite3_value_type(sqlite3_value*); +/// Ditto +int sqlite3_value_numeric_type(sqlite3_value*); +/// Ditto +int sqlite3_value_nochange(sqlite3_value*); +/// Ditto +int sqlite3_value_frombind(sqlite3_value*); + +/* +* CAPI3REF: Finding The Subtype Of SQL Values +*/ +uint sqlite3_value_subtype(sqlite3_value*); + +/* +* CAPI3REF: Copy And Free SQL Values +*/ +sqlite3_value* sqlite3_value_dup(const sqlite3_value*); +void sqlite3_value_free(sqlite3_value*); + +/** +* CAPI3REF: Obtain Aggregate Function Context +*/ +void *sqlite3_aggregate_context(sqlite3_context*, int nBytes); + +/** +* CAPI3REF: User Data For Functions +*/ +void *sqlite3_user_data(sqlite3_context*); + +/** +* CAPI3REF: Database Connection For Functions +*/ +sqlite3 *sqlite3_context_db_handle(sqlite3_context*); + +/** +* CAPI3REF: Function Auxiliary Data +*/ +void *sqlite3_get_auxdata(sqlite3_context*, int N); +/// Ditto +void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void function (void*)); + + +/** +* CAPI3REF: Constants Defining Special Destructor Behavior +*/ +alias sqlite3_destructor_type = void function (void*); +/// Ditto +enum +{ + SQLITE_STATIC = (cast(sqlite3_destructor_type) 0), + SQLITE_TRANSIENT = (cast (sqlite3_destructor_type) -1) +} + +/** +* CAPI3REF: Setting The Result Of An SQL Function +*/ +void sqlite3_result_blob(sqlite3_context*, const void*, int, void function(void*)); +/// Ditto +void sqlite3_result_blob64(sqlite3_context*,const void*,sqlite3_uint64,void function(void*)); +/// Ditto +void sqlite3_result_double(sqlite3_context*, double); +/// Ditto +void sqlite3_result_error(sqlite3_context*, const char*, int); +/// Ditto +void sqlite3_result_error16(sqlite3_context*, const void*, int); +/// Ditto +void sqlite3_result_error_toobig(sqlite3_context*); +/// Ditto +void sqlite3_result_error_nomem(sqlite3_context*); +/// Ditto +void sqlite3_result_error_code(sqlite3_context*, int); +/// Ditto +void sqlite3_result_int(sqlite3_context*, int); +/// Ditto +void sqlite3_result_int64(sqlite3_context*, sqlite3_int64); +/// Ditto +void sqlite3_result_null(sqlite3_context*); +/// Ditto +void sqlite3_result_text(sqlite3_context*, const char*, int, void function(void*)); +/// Ditto +void sqlite3_result_text64(sqlite3_context*, const char*,sqlite3_uint64,void function(void*), ubyte encoding); +/// Ditto +void sqlite3_result_text16(sqlite3_context*, const void*, int, void function(void*)); +/// Ditto +void sqlite3_result_text16le(sqlite3_context*, const void*, int, void function(void*)); +/// Ditto +void sqlite3_result_text16be(sqlite3_context*, const void*, int, void function(void*)); +/// Ditto +void sqlite3_result_value(sqlite3_context*, sqlite3_value*); +/// Ditto +void sqlite3_result_zeroblob(sqlite3_context*, int n); +/// Ditto +int sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n); + +/* +* CAPI3REF: Setting The Subtype Of An SQL Function +*/ +void sqlite3_result_subtype(sqlite3_context*,uint); + +/** +* CAPI3REF: Define New Collating Sequences +*/ +int sqlite3_create_collation( + sqlite3*, + const(char)*zName, + int eTextRep, + void *pArg, + int function (void*,int,const void*,int,const void*) xCompare +); +/// Ditto +int sqlite3_create_collation_v2( + sqlite3*, + const(char)*zName, + int eTextRep, + void *pArg, + int function (void*,int,const void*,int,const void*) xCompare, + void function (void*) xDestroy +); +/// Ditto +int sqlite3_create_collation16( + sqlite3*, + const(void)*zName, + int eTextRep, + void *pArg, + int function (void*,int,const void*,int,const void*) xCompare +); + +/** +* CAPI3REF: Collation Needed Callbacks +*/ +int sqlite3_collation_needed( + sqlite3*, + void*, + void function (void*,sqlite3*,int eTextRep,const char*) +); +/// Ditto +int sqlite3_collation_needed16( + sqlite3*, + void*, + void function (void*,sqlite3*,int eTextRep,const void*) +); + +/** +* Specify the activation key for a CEROD database. Unless +* activated, none of the CEROD routines will work. +*/ +void sqlite3_activate_cerod( + const(char)*zPassPhrase /** Activation phrase */ +); + +/** +* CAPI3REF: Suspend Execution For A Short Time +*/ +int sqlite3_sleep(int); + +/** +* CAPI3REF: Name Of The Folder Holding Temporary Files +*/ +extern char *sqlite3_temp_directory; + +/** +* CAPI3REF: Name Of The Folder Holding Database Files +*/ +extern char *sqlite3_data_directory; + +/** +* CAPI3REF: Win32 Specific Interface +*/ +int sqlite3_win32_set_directory( + c_ulong type, /** Identifier for directory being set or reset */ + void* zValue /** New value for directory being set or reset */ +); +/// Ditto +int sqlite3_win32_set_directory8( + c_ulong type, /** Identifier for directory being set or reset */ + void* zValue /** New value for directory being set or reset */ +); +/// Ditto +int sqlite3_win32_set_directory16( + c_ulong type, /** Identifier for directory being set or reset */ + void* zValue /** New value for directory being set or reset */ +); + +/** +* CAPI3REF: Win32 Directory Types +*/ +enum +{ + SQLITE_WIN32_DATA_DIRECTORY_TYPE = 1, + SQLITE_WIN32_TEMP_DIRECTORY_TYPE = 2 +} + +/** +* CAPI3REF: Test For Auto-Commit Mode +*/ +int sqlite3_get_autocommit(sqlite3*); + +/** +* CAPI3REF: Find The Database Handle Of A Prepared Statement +*/ +sqlite3 *sqlite3_db_handle(sqlite3_stmt*); + +/** +* CAPI3REF: Return The Filename For A Database Connection +*/ +const(char)* sqlite3_db_filename(sqlite3 *db, const char* zDbName); + +/** +* CAPI3REF: Determine if a database is read-only +*/ +int sqlite3_db_readonly(sqlite3 *db, const char * zDbName); + +/* +* CAPI3REF: Find the next prepared statement +*/ +sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt); + +/** +* CAPI3REF: Commit And Rollback Notification Callbacks +*/ +void *sqlite3_commit_hook(sqlite3*, int function (void*), void*); +/// Ditto +void *sqlite3_rollback_hook(sqlite3*, void function (void *), void*); + +/** +* CAPI3REF: Data Change Notification Callbacks +*/ +void *sqlite3_update_hook( + sqlite3*, + void function (void *,int ,char *, char *, sqlite3_int64), + void* +); + +/** +* CAPI3REF: Enable Or Disable Shared Pager Cache +*/ +int sqlite3_enable_shared_cache(int); + +/** +* CAPI3REF: Attempt To Free Heap Memory +*/ +int sqlite3_release_memory(int); + +/** +* CAPI3REF: Free Memory Used By A Database Connection +*/ +int sqlite3_db_release_memory(sqlite3*); + +/* +* CAPI3REF: Impose A Limit On Heap Size +*/ +sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N); +sqlite3_int64 sqlite3_hard_heap_limit64(sqlite3_int64 N); + +/** +* CAPI3REF: Deprecated Soft Heap Limit Interface +*/ +deprecated void sqlite3_soft_heap_limit(int N); + +/** +* CAPI3REF: Extract Metadata About A Column Of A Table +*/ +int sqlite3_table_column_metadata( + sqlite3 *db, /** Connection handle */ + const(char)*zDbName, /** Database name or NULL */ + const(char)*zTableName, /** Table name */ + const(char)*zColumnName, /** Column name */ + char **pzDataType, /** OUTPUT: Declared data type */ + char **pzCollSeq, /** OUTPUT: Collation sequence name */ + int *pNotNull, /** OUTPUT: True if NOT NULL constraint exists */ + int *pPrimaryKey, /** OUTPUT: True if column part of PK */ + int *pAutoinc /** OUTPUT: True if column is auto-increment */ +); + +/** +* CAPI3REF: Load An Extension +*/ +int sqlite3_load_extension( + sqlite3 *db, /** Load the extension into this database connection */ + const(char)*zFile, /** Name of the shared library containing extension */ + const(char)*zProc, /** Entry point. Derived from zFile if 0 */ + char **pzErrMsg /** Put error message here if not 0 */ +); + +/** +* CAPI3REF: Enable Or Disable Extension Loading +*/ +int sqlite3_enable_load_extension(sqlite3 *db, int onoff); + +/** +* CAPI3REF: Automatically Load Statically Linked Extensions +*/ +int sqlite3_auto_extension(void function () xEntryPoint); + +/** +* CAPI3REF: Cancel Automatic Extension Loading +*/ +int sqlite3_cancel_auto_extension(void function() xEntryPoint); + +/** +* CAPI3REF: Reset Automatic Extension Loading +*/ +void sqlite3_reset_auto_extension(); + +/** +* The interface to the virtual-table mechanism is currently considered +* to be experimental. The interface might change in incompatible ways. +* If this is a problem for you, do not use the interface at this time. +* +* When the virtual-table mechanism stabilizes, we will declare the +* interface fixed, support it indefinitely, and remove this comment. +*/ + +/** +* CAPI3REF: Virtual Table Object +*/ + +alias mapFunction = void function (sqlite3_context*,int,sqlite3_value**); + +/// Ditto +struct sqlite3_module +{ + int iVersion; + int function (sqlite3*, void *pAux, + int argc, const char **argv, + sqlite3_vtab **ppVTab, char**) xCreate; + int function (sqlite3*, void *pAux, + int argc, const char **argv, + sqlite3_vtab **ppVTab, char**) xConnect; + int function (sqlite3_vtab *pVTab, sqlite3_index_info*) xBestIndex; + int function (sqlite3_vtab *pVTab) xDisconnect; + int function (sqlite3_vtab *pVTab) xDestroy; + int function (sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor) xOpen; + int function (sqlite3_vtab_cursor*) xClose; + int function (sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv) xFilter; + int function (sqlite3_vtab_cursor*) xNext; + int function (sqlite3_vtab_cursor*) xEof; + int function (sqlite3_vtab_cursor*, sqlite3_context*, int) xColumn; + int function (sqlite3_vtab_cursor*, sqlite3_int64 *pRowid) xRowid; + int function (sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *) xUpdate; + int function (sqlite3_vtab *pVTab) xBegin; + int function (sqlite3_vtab *pVTab) xSync; + int function (sqlite3_vtab *pVTab) xCommit; + int function (sqlite3_vtab *pVTab) xRollback; + int function (sqlite3_vtab *pVtab, int nArg, const char *zName, + mapFunction*, + void **ppArg) xFindFunction; + int function (sqlite3_vtab *pVtab, const char *zNew) xRename; + int function (sqlite3_vtab *pVTab, int) xSavepoint; + int function (sqlite3_vtab *pVTab, int) xRelease; + int function (sqlite3_vtab *pVTab, int) xRollbackTo; + int function (const char*) xShadowName; +} + +/** +* CAPI3REF: Virtual Table Indexing Information +*/ +struct sqlite3_index_info +{ + struct sqlite3_index_constraint + { + int iColumn; /** constrained. -1 for ROWID */ + char op; /** Constraint operator */ + char usable; /** True if this constraint is usable */ + int iTermOffset; /** Used internally - xBestIndex should ignore */ + } + struct sqlite3_index_orderby + { + int iColumn; /** Column number */ + char desc; /** True for DESC. False for ASC. */ + } + struct sqlite3_index_constraint_usage + { + int argvIndex; /** if >0, constraint is part of argv to xFilter */ + char omit; /** Do not code a test for this constraint */ + } + /* Inputs */ + int nConstraint; /** Number of entries in aConstraint */ + sqlite3_index_constraint* aConstraint; /** Table of WHERE clause constraints */ + int nOrderBy; /** Number of terms in the ORDER BY clause */ + sqlite3_index_orderby *aOrderBy; /** The ORDER BY clause */ + /* Outputs */ + sqlite3_index_constraint_usage *aConstraintUsage; + int idxNum; /** Number used to identify the index */ + char *idxStr; /** String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /** Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /** True if output is already ordered */ + double estimatedCost; /** Estimated cost of using this index */ + sqlite3_int64 estimatedRows; + int idxFlags; + sqlite3_uint64 colUsed; +} + +/** +* CAPI3REF: Virtual Table Scan Flags +*/ +enum +{ + SQLITE_INDEX_SCAN_UNIQUE = 1 +} + +/** +* CAPI3REF: Virtual Table Constraint Operator Codes +*/ +enum +{ + SQLITE_INDEX_CONSTRAINT_EQ = 2, + SQLITE_INDEX_CONSTRAINT_GT = 4, + SQLITE_INDEX_CONSTRAINT_LE = 8, + SQLITE_INDEX_CONSTRAINT_LT = 16, + SQLITE_INDEX_CONSTRAINT_GE = 32, + SQLITE_INDEX_CONSTRAINT_MATCH = 64, + SQLITE_INDEX_CONSTRAINT_LIKE = 65, + SQLITE_INDEX_CONSTRAINT_GLOB = 66, + SQLITE_INDEX_CONSTRAINT_REGEXP = 67, + SQLITE_INDEX_CONSTRAINT_NE = 68, + SQLITE_INDEX_CONSTRAINT_ISNOT = 69, + SQLITE_INDEX_CONSTRAINT_ISNOTNULL = 70, + SQLITE_INDEX_CONSTRAINT_ISNULL = 71, + SQLITE_INDEX_CONSTRAINT_IS = 72, + SQLITE_INDEX_CONSTRAINT_FUNCTION = 150 +} + +/** +* CAPI3REF: Register A Virtual Table Implementation +*/ +int sqlite3_create_module( + sqlite3 *db, /* SQLite connection to register module with */ + const(char)*zName, /* Name of the module */ + const(sqlite3_module)*p, /* Methods for the module */ + void *pClientData /* Client data for xCreate/xConnect */ +); +/// Ditto +int sqlite3_create_module_v2( + sqlite3 *db, /* SQLite connection to register module with */ + const(char)*zName, /* Name of the module */ + const(sqlite3_module)*p, /* Methods for the module */ + void *pClientData, /* Client data for xCreate/xConnect */ + void function (void*) xDestroy /* Module destructor function */ +); + +/** +* CAPI3REF: Remove Unnecessary Virtual Table Implementations +*/ +int sqlite3_drop_modules( + sqlite3 *db, /* Remove modules from this connection */ + const(char*)* azKeep /* Except, do not remove the ones named here */ +); + +/** +* CAPI3REF: Virtual Table Instance Object +*/ +struct sqlite3_vtab +{ + const(sqlite3_module)*pModule; /** The module for this virtual table */ + int nRef; /** NO LONGER USED */ + char *zErrMsg; /** Error message from sqlite3_mprintf() */ + /* Virtual table implementations will typically add additional fields */ +} + +/** +* CAPI3REF: Virtual Table Cursor Object +*/ +struct sqlite3_vtab_cursor +{ + sqlite3_vtab *pVtab; /** Virtual table of this cursor */ + /* Virtual table implementations will typically add additional fields */ +} + +/** +* CAPI3REF: Declare The Schema Of A Virtual Table +*/ +int sqlite3_declare_vtab(sqlite3*, const char *zSQL); + +/** +* CAPI3REF: Overload A Function For A Virtual Table +*/ +int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); + +/** +* The interface to the virtual-table mechanism defined above (back up +* to a comment remarkably similar to this one) is currently considered +* to be experimental. The interface might change in incompatible ways. +* If this is a problem for you, do not use the interface at this time. +* +* When the virtual-table mechanism stabilizes, we will declare the +* interface fixed, support it indefinitely, and remove this comment. +*/ + +/* +* CAPI3REF: A Handle To An Open BLOB +*/ +struct sqlite3_blob; + +/** +* CAPI3REF: Open A BLOB For Incremental I/O +*/ +int sqlite3_blob_open( + sqlite3*, + const(char)* zDb, + const(char)* zTable, + const(char)* zColumn, + sqlite3_int64 iRow, + int flags, + sqlite3_blob **ppBlob +); + +/** +* CAPI3REF: Move a BLOB Handle to a New Row +*/ +int sqlite3_blob_reopen(sqlite3_blob *, sqlite3_int64); + +/** +* CAPI3REF: Close A BLOB Handle +*/ +int sqlite3_blob_close(sqlite3_blob *); + +/** +* CAPI3REF: Return The Size Of An Open BLOB +*/ +int sqlite3_blob_bytes(sqlite3_blob *); + +/** +* CAPI3REF: Read Data From A BLOB Incrementally +*/ +int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset); + +/** +* CAPI3REF: Write Data Into A BLOB Incrementally +*/ +int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset); + +/** +* CAPI3REF: Virtual File System Objects +*/ +sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName); +/// Ditto +int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt); +/// Ditto +int sqlite3_vfs_unregister(sqlite3_vfs*); + +/** +* CAPI3REF: Mutexes +*/ +sqlite3_mutex *sqlite3_mutex_alloc(int); +/// Ditto +void sqlite3_mutex_free(sqlite3_mutex*); +/// Ditto +void sqlite3_mutex_enter(sqlite3_mutex*); +/// Ditto +int sqlite3_mutex_try(sqlite3_mutex*); +/// Ditto +void sqlite3_mutex_leave(sqlite3_mutex*); + +/** +* CAPI3REF: Mutex Methods Object +*/ +struct sqlite3_mutex_methods +{ + int function () xMutexInit; + int function () xMutexEnd; + sqlite3_mutex* function (int) xMutexAlloc; + void function (sqlite3_mutex *) xMutexFree; + void function (sqlite3_mutex *) xMutexEnter; + int function (sqlite3_mutex *) xMutexTry; + void function (sqlite3_mutex *) xMutexLeave; + int function (sqlite3_mutex *) xMutexHeld; + int function (sqlite3_mutex *) xMutexNotheld; +} + +/** +* CAPI3REF: Mutex Verification Routines +*/ + +//#ifndef NDEBUG +int sqlite3_mutex_held(sqlite3_mutex*); +/// Ditto +int sqlite3_mutex_notheld(sqlite3_mutex*); +//#endif + +/** +* CAPI3REF: Mutex Types +*/ +enum +{ + SQLITE_MUTEX_FAST = 0, + SQLITE_MUTEX_RECURSIVE = 1, + SQLITE_MUTEX_STATIC_MAIN = 2, + SQLITE_MUTEX_STATIC_MEM = 3, /** sqlite3_malloc() */ + SQLITE_MUTEX_STATIC_MEM2 = 4, /** NOT USED */ + SQLITE_MUTEX_STATIC_OPEN = 4, /** sqlite3BtreeOpen() */ + SQLITE_MUTEX_STATIC_PRNG = 5, /** sqlite3_randomness() */ + SQLITE_MUTEX_STATIC_LRU = 6, /** lru page list */ + SQLITE_MUTEX_STATIC_LRU2 = 7, /** NOT USED */ + SQLITE_MUTEX_STATIC_PMEM = 7, /** sqlite3PageMalloc() */ + SQLITE_MUTEX_STATIC_APP1 = 8, /** For use by application */ + SQLITE_MUTEX_STATIC_APP2 = 9, /** For use by application */ + SQLITE_MUTEX_STATIC_APP3 = 10, /** For use by application */ + SQLITE_MUTEX_STATIC_VFS1 = 11, /** For use by built-in VFS */ + SQLITE_MUTEX_STATIC_VFS2 = 12, /** For use by extension VFS */ + SQLITE_MUTEX_STATIC_VFS3 = 13, /** For use by application VFS */ +} + +deprecated ("Legacy compatibility") +{ + alias SQLITE_MUTEX_STATIC_MASTER = SQLITE_MUTEX_STATIC_MAIN; +} + +/** +* CAPI3REF: Retrieve the mutex for a database connection +*/ +sqlite3_mutex *sqlite3_db_mutex(sqlite3*); + +/** +* CAPI3REF: Low-Level Control Of Database Files +*/ +int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*); + +/** +* CAPI3REF: Testing Interface +*/ +int sqlite3_test_control(int op, ...); + +/** +* CAPI3REF: Testing Interface Operation Codes +*/ +enum +{ + SQLITE_TESTCTRL_FIRST = 5, + SQLITE_TESTCTRL_PRNG_SAVE = 5, + SQLITE_TESTCTRL_PRNG_RESTORE = 6, + SQLITE_TESTCTRL_PRNG_RESET = 7, /** NOT USED */ + SQLITE_TESTCTRL_BITVEC_TEST = 8, + SQLITE_TESTCTRL_FAULT_INSTALL = 9, + SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS = 10, + SQLITE_TESTCTRL_PENDING_BYTE = 11, + SQLITE_TESTCTRL_ASSERT = 12, + SQLITE_TESTCTRL_ALWAYS = 13, + SQLITE_TESTCTRL_RESERVE = 14, /** NOT USED */ + SQLITE_TESTCTRL_OPTIMIZATIONS = 15, + SQLITE_TESTCTRL_ISKEYWORD = 16, /** NOT USED */ + SQLITE_TESTCTRL_SCRATCHMALLOC = 17, /** NOT USED */ + SQLITE_TESTCTRL_INTERNAL_FUNCTIONS = 17, + SQLITE_TESTCTRL_LOCALTIME_FAULT = 18, + SQLITE_TESTCTRL_EXPLAIN_STMT = 19, /** NOT USED */ + SQLITE_TESTCTRL_ONCE_RESET_THRESHOLD = 19, + SQLITE_TESTCTRL_NEVER_CORRUPT = 20, + SQLITE_TESTCTRL_VDBE_COVERAGE = 21, + SQLITE_TESTCTRL_BYTEORDER = 22, + SQLITE_TESTCTRL_ISINIT = 23, + SQLITE_TESTCTRL_SORTER_MMAP = 24, + SQLITE_TESTCTRL_IMPOSTER = 25, + SQLITE_TESTCTRL_PARSER_COVERAGE = 26, + SQLITE_TESTCTRL_RESULT_INTREAL = 27, + SQLITE_TESTCTRL_PRNG_SEED = 28, + SQLITE_TESTCTRL_EXTRA_SCHEMA_CHECKS = 29, + SQLITE_TESTCTRL_LAST = 29, /** Largest TESTCTRL */ +} + +/** +* CAPI3REF: SQL Keyword Checking +*/ +int sqlite3_keyword_count(); +/// Ditto +int sqlite3_keyword_name(int, const(char*)*, int*); +/// Ditto +int sqlite3_keyword_check(const(char)*, int); + +/** +* CAPI3REF: Dynamic String Object +*/ +struct sqlite3_str; + +/** +* CAPI3REF: Create A New Dynamic String Object +*/ +sqlite3_str* sqlite3_str_new(sqlite3*); + +/** +* CAPI3REF: Finalize A Dynamic String +*/ +char* sqlite3_str_finish(sqlite3_str*); + +/** +* CAPI3REF: Add Content To A Dynamic String +*/ +void sqlite3_str_appendf(sqlite3_str*, const(char)* zFormat, ...); +/// Ditto +void sqlite3_str_vappendf(sqlite3_str*, const(char)* zFormat, va_list); +/// Ditto +void sqlite3_str_append(sqlite3_str*, const(char)* zIn, int N); +/// Ditto +void sqlite3_str_appendall(sqlite3_str*, const(char)* zIn); +/// Ditto +void sqlite3_str_appendchar(sqlite3_str*, int N, char C); +/// Ditto +void sqlite3_str_reset(sqlite3_str*); + +/** +* CAPI3REF: Status Of A Dynamic String +*/ +int sqlite3_str_errcode(sqlite3_str*); +int sqlite3_str_length(sqlite3_str*); +char* sqlite3_str_value(sqlite3_str*); + +/** +* CAPI3REF: SQLite Runtime Status +*/ +int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag); +/// Ditto +int sqlite3_status64(int op, long *pCurrent, long *pHighwater, int resetFlag); + +/** +* CAPI3REF: Status Parameters +*/ +enum +{ + SQLITE_STATUS_MEMORY_USED = 0, + SQLITE_STATUS_PAGECACHE_USED = 1, + SQLITE_STATUS_PAGECACHE_OVERFLOW = 2, + SQLITE_STATUS_SCRATCH_USED = 3, /** NOT USED */ + SQLITE_STATUS_SCRATCH_OVERFLOW = 4, /** NOT USED */ + SQLITE_STATUS_MALLOC_SIZE = 5, + SQLITE_STATUS_PARSER_STACK = 6, + SQLITE_STATUS_PAGECACHE_SIZE = 7, + SQLITE_STATUS_SCRATCH_SIZE = 8, /** NOT USED */ + SQLITE_STATUS_MALLOC_COUNT = 9 +} + +/** +* CAPI3REF: Database Connection Status +*/ +int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg); + +/** +* CAPI3REF: Status Parameters for database connections +*/ +enum +{ + SQLITE_DBSTATUS_LOOKASIDE_USED = 0, + SQLITE_DBSTATUS_CACHE_USED = 1, + SQLITE_DBSTATUS_SCHEMA_USED = 2, + SQLITE_DBSTATUS_STMT_USED = 3, + SQLITE_DBSTATUS_LOOKASIDE_HIT = 4, + SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE = 5, + SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL = 6, + SQLITE_DBSTATUS_CACHE_HIT = 7, + SQLITE_DBSTATUS_CACHE_MISS = 8, + SQLITE_DBSTATUS_CACHE_WRITE = 9, + SQLITE_DBSTATUS_DEFERRED_FKS = 10, + SQLITE_DBSTATUS_CACHE_USED_SHARED = 11, + SQLITE_DBSTATUS_CACHE_SPILL = 12, + SQLITE_DBSTATUS_MAX = 12 /** Largest defined DBSTATUS */ +} + +/** +* CAPI3REF: Prepared Statement Status +*/ +int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); + +/** +* CAPI3REF: Status Parameters for prepared statements +*/ +enum +{ + SQLITE_STMTSTATUS_FULLSCAN_STEP = 1, + SQLITE_STMTSTATUS_SORT = 2, + SQLITE_STMTSTATUS_AUTOINDEX = 3, + SQLITE_STMTSTATUS_VM_STEP = 4, + SQLITE_STMTSTATUS_REPREPARE = 5, + SQLITE_STMTSTATUS_RUN = 6, + SQLITE_STMTSTATUS_MEMUSED = 99 +} + +/** +* CAPI3REF: Custom Page Cache Object +*/ +struct sqlite3_pcache; + +/** +* CAPI3REF: Custom Page Cache Object +*/ +struct sqlite3_pcache_page +{ + void *pBuf; /* The content of the page */ + void *pExtra; /* Extra information associated with the page */ +} + +/** +* CAPI3REF: Application Defined Page Cache. +*/ +struct sqlite3_pcache_methods2 +{ + int iVersion; + void *pArg; + int function(void*) xInit; + void function(void*) xShutdown; + sqlite3_pcache * function(int szPage, int szExtra, int bPurgeable) xCreate; + void function(sqlite3_pcache*, int nCachesize) xCachesize; + int function(sqlite3_pcache*) xPagecount; + sqlite3_pcache_page * function(sqlite3_pcache*, uint key, int createFlag) xFetch; + void function(sqlite3_pcache*, sqlite3_pcache_page*, int discard) xUnpin; + void function(sqlite3_pcache*, sqlite3_pcache_page*, + uint oldKey, uint newKey) xRekey; + void function(sqlite3_pcache*, uint iLimit) xTruncate; + void function(sqlite3_pcache*) xDestroy; + void function(sqlite3_pcache*) xShrink; +} + +struct sqlite3_pcache_methods +{ + void *pArg; + int function (void*) xInit; + void function (void*) xShutdown; + sqlite3_pcache* function (int szPage, int bPurgeable) xCreate; + void function (sqlite3_pcache*, int nCachesize) xCachesize; + int function (sqlite3_pcache*) xPagecount; + void* function (sqlite3_pcache*, uint key, int createFlag) xFetch; + void function (sqlite3_pcache*, void*, int discard) xUnpin; + void function (sqlite3_pcache*, void*, uint oldKey, uint newKey) xRekey; + void function (sqlite3_pcache*, uint iLimit) xTruncate; + void function (sqlite3_pcache*) xDestroy; +} + +/** +* CAPI3REF: Online Backup Object +*/ +struct sqlite3_backup; + +/** +* CAPI3REF: Online Backup API. +*/ +sqlite3_backup *sqlite3_backup_init( + sqlite3 *pDest, /** Destination database handle */ + const(char)*zDestName, /** Destination database name */ + sqlite3 *pSource, /** Source database handle */ + const(char)*zSourceName /** Source database name */ +); +/// Ditto +int sqlite3_backup_step(sqlite3_backup *p, int nPage); +/// Ditto +int sqlite3_backup_finish(sqlite3_backup *p); +/// Ditto +int sqlite3_backup_remaining(sqlite3_backup *p); +/// Ditto +int sqlite3_backup_pagecount(sqlite3_backup *p); + +/** +* CAPI3REF: Unlock Notification +*/ +int sqlite3_unlock_notify( + sqlite3 *pBlocked, /** Waiting connection */ + void function (void **apArg, int nArg) xNotify, /** Callback function to invoke */ + void *pNotifyArg /** Argument to pass to xNotify */ +); + +/** +* CAPI3REF: String Comparison +*/ +int sqlite3_stricmp(const char * , const char * ); +int sqlite3_strnicmp(const char * , const char * , int); + +/* +* CAPI3REF: String Globbing +* +*/ +int sqlite3_strglob(const(char)* zGlob, const(char)* zStr); + +/* +* CAPI3REF: String LIKE Matching +*/ +int sqlite3_strlike(const(char)* zGlob, const(char)* zStr, uint cEsc); + +/** +* CAPI3REF: Error Logging Interface +*/ +void sqlite3_log(int iErrCode, const char *zFormat, ...); + +/** +* CAPI3REF: Write-Ahead Log Commit Hook +*/ +void *sqlite3_wal_hook( + sqlite3*, + int function (void *,sqlite3*,const char*,int), + void* +); + +/** +* CAPI3REF: Configure an auto-checkpoint +*/ +int sqlite3_wal_autocheckpoint(sqlite3 *db, int N); + +/** +* CAPI3REF: Checkpoint a database +*/ +int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb); + +/** +* CAPI3REF: Checkpoint a database +*/ +int sqlite3_wal_checkpoint_v2( + sqlite3 *db, /** Database handle */ + const(char)*zDb, /** Name of attached database (or NULL) */ + int eMode, /** SQLITE_CHECKPOINT_* value */ + int *pnLog, /** OUT: Size of WAL log in frames */ + int *pnCkpt /** OUT: Total number of frames checkpointed */ +); + +/** +* CAPI3REF: Checkpoint operation parameters +*/ +enum +{ + SQLITE_CHECKPOINT_PASSIVE = 0, + SQLITE_CHECKPOINT_FULL = 1, + SQLITE_CHECKPOINT_RESTART = 2, + SQLITE_CHECKPOINT_TRUNCATE = 3, +} + +/* +* CAPI3REF: Virtual Table Interface Configuration +*/ +int sqlite3_vtab_config(sqlite3*, int op, ...); + +/** +* CAPI3REF: Virtual Table Configuration Options +*/ +enum SQLITE_VTAB_CONSTRAINT_SUPPORT = 1; +enum SQLITE_VTAB_INNOCUOUS = 2; +enum SQLITE_VTAB_DIRECTONLY = 3; + +/* +* 2010 August 30 +* +* The author disclaims copyright to this source code. In place of +* a legal notice, here is a blessing: +* +* May you do good and not evil. +* May you find forgiveness for yourself and forgive others. +* May you share freely, never taking more than you give. +* +************************************************************************ +*/ + +//#ifndef _SQLITE3RTREE_H_ +//#define _SQLITE3RTREE_H_ + + +/* +* CAPI3REF: Determine The Virtual Table Conflict Policy +*/ +int sqlite3_vtab_on_conflict(sqlite3 *); + +/* +* CAPI3REF: Determine If Virtual Table Column Access Is For UPDATE +*/ +int sqlite3_vtab_nochange(sqlite3_context*); + +/* +* CAPI3REF: Determine The Collation For a Virtual Table Constraint +*/ +const(char)* sqlite3_vtab_collation (sqlite3_index_info*, int); + +/* +* CAPI3REF: Conflict resolution modes +*/ +enum +{ + SQLITE_ROLLBACK = 1, + SQLITE_FAIL = 3, + SQLITE_REPLACE = 5 +} + +/* +* CAPI3REF: Prepared Statement Scan Status Opcodes +*/ +enum +{ + SQLITE_SCANSTAT_NLOOP = 0, + SQLITE_SCANSTAT_NVISIT = 1, + SQLITE_SCANSTAT_EST = 2, + SQLITE_SCANSTAT_NAME = 3, + SQLITE_SCANSTAT_EXPLAIN = 4, + SQLITE_SCANSTAT_SELECTID = 5, +} + +/* +* CAPI3REF: Prepared Statement Scan Status +*/ +int sqlite3_stmt_scanstatus(sqlite3_stmt *pStmt, int idx, int iScanStatusOp, void *pOut); + +/* +* CAPI3REF: Zero Scan-Status Counters +*/ +void sqlite3_stmt_scanstatus_reset(sqlite3_stmt *); + +/* +* CAPI3REF: Flush caches to disk mid-transaction +*/ +int sqlite3_db_cacheflush(sqlite3 *); + +/* +* CAPI3REF: The pre-update hook +*/ +void* sqlite3_preupdate_hook( + sqlite3* db, + void function( + void* pCtx, + sqlite3* db, /** Database handle */ + int op, /** SQLITE_UPDATE, DELETE or INSERT */ + const(char)* zDb, /** Database name */ + const(char)* zName, /** Table name */ + sqlite3_int64 iKey1, /** Rowid of row about to be deleted/updated */ + sqlite3_int64 iKey2 + ) xPreUpdate, + void* +); +/// Ditto +int sqlite3_preupdate_old(sqlite3*, int, sqlite3_value**); +/// Ditto +int sqlite3_preupdate_count(sqlite3*); +/// Ditto +int sqlite3_preupdate_depth(sqlite3*); +/// Ditto +int sqlite3_preupdate_new(sqlite3*, int, sqlite3_value**); + +/* +* CAPI3REF: Database Snapshot +*/ +struct sqlite3_snapshot +{ + ubyte[48] hidden; +} + +/* +* CAPI3REF: Record A Database Snapshot +*/ +int sqlite3_snapshot_get(sqlite3 *db, char *zSchema, sqlite3_snapshot **ppSnapshot); + +/* +* CAPI3REF: Start a read transaction on an historical snapshot +*/ +int sqlite3_snapshot_open(sqlite3 *db, char *zSchema, sqlite3_snapshot *pSnapshot); + +/* +* CAPI3REF: Destroy a snapshot +*/ +void sqlite3_snapshot_free(sqlite3_snapshot *); + +/* +* CAPI3REF: Compare the ages of two snapshot handles +*/ +int sqlite3_snapshot_cmp(sqlite3_snapshot* p1, sqlite3_snapshot* p2); + +/* +* CAPI3REF: Recover snapshots from a wal file +*/ +int sqlite3_snapshot_recover (sqlite3* db, const(char)* zDb); + +/* +* CAPI3REF: Serialize a database +*/ +ubyte* sqlite3_serialize( + sqlite3* db, + const(char)* zSchema, + sqlite3_int64* piSize, + uint mFlags +); + +/* +* CAPI3REF: Serialize a database +*/ +enum +{ + SQLITE_SERIALIZE_NOCOPY = 0x001 +} + +/* +* CAPI3REF: Deserialize a database +*/ +int sqlite3_deserialize ( + sqlite3* db, + const(char)* zSchema, + ubyte* pData, + sqlite3_int64 szDb, + sqlite3_int64 szBuf, + uint mFlags +); + +/* +* CAPI3REF: Flags for sqlite3_deserialize() +*/ +enum +{ + SQLITE_DESERIALIZE_FREEONCLOSE = 1, + SQLITE_DESERIALIZE_RESIZEABLE = 2, + SQLITE_DESERIALIZE_READONLY = 4 +} + +/** +* Register a geometry callback named zGeom that can be used as part of an +* R-Tree geometry query as follows: +* +* SELECT ... FROM $(LT)rtree$(GT) WHERE $(LT)rtree col$(GT) MATCH $zGeom(... params ...) +*/ +int sqlite3_rtree_geometry_callback( + sqlite3 *db, + const(char)*zGeom, + int function (sqlite3_rtree_geometry *, int nCoord, double *aCoord, int *pRes) xGeom, + void *pContext +); + +/** +* A pointer to a structure of the following type is passed as the first +* argument to callbacks registered using rtree_geometry_callback(). +*/ +struct sqlite3_rtree_geometry +{ + void *pContext; /** Copy of pContext passed to s_r_g_c() */ + int nParam; /** Size of array aParam[] */ + double *aParam; /** Parameters passed to SQL geom function */ + void *pUser; /** Callback implementation user data */ + void function (void *) xDelUser; /** Called by SQLite to clean up pUser */ +} + +int sqlite3_rtree_query_callback( + sqlite3 *db, + const(char)* zQueryFunc, + int function(sqlite3_rtree_query_info*) xQueryFunc, + void *pContext, + void function(void*) xDestructor +); + +struct sqlite3_rtree_query_info +{ + void *pContext; /* pContext from when function registered */ + int nParam; /* Number of function parameters */ + double*aParam; /* value of function parameters */ + void *pUser; /* callback can use this, if desired */ + void function(void*) xDelUser; /* function to free pUser */ + double*aCoord; /* Coordinates of node or entry to check */ + uint *anQueue; /* Number of pending entries in the queue */ + int nCoord; /* Number of coordinates */ + int iLevel; /* Level of current node or entry */ + int mxLevel; /* The largest iLevel value in the tree */ + sqlite3_int64 iRowid; /* Rowid for current entry */ + double rParentScore; /* Score of parent node */ + int eParentWithin; /* Visibility of parent node */ + int eWithin; /* OUT: Visibility */ + double rScore; /* OUT: Write the score here */ + sqlite3_value **apSqlParam; /* Original SQL values of parameters */ +} + +enum +{ + NOT_WITHIN = 0, /** Object completely outside of query region */ + PARTLY_WITHIN = 1, /** Object partially overlaps query region */ + FULLY_WITHIN = 2 /** Object fully contained within query region */ +} + +/* +* CAPI3REF: Session Object Handle +*/ +struct sqlite3_session; + +/* +* CAPI3REF: Session Object Handle +*/ +struct sqlite3_changeset_iter; + +/* +* CAPI3REF: Create A New Session Object +*/ +int sqlite3session_create ( + sqlite3* db, + const(char)* zDb, + sqlite3_session** ppSession +); + +/* +* CAPI3REF: Delete A Session Object +*/ +void sqlite3session_delete(sqlite3_session* pSession); + +/* +* CAPI3REF: Enable Or Disable A Session Object +*/ +int sqlite3session_enable(sqlite3_session* pSession, int bEnable); + +/* +* CAPI3REF: Set Or Clear the Indirect Change Flag +*/ +int sqlite3session_indirect(sqlite3_session* pSession, int bIndirect); + +/* +* CAPI3REF: Attach A Table To A Session Object +*/ +int sqlite3session_attach(sqlite3_session* pSession, const(char)* zTab); + +/* +* CAPI3REF: Set a table filter on a Session Object +*/ +void sqlite3session_table_filter( + sqlite3_session* pSession, + int function (void* pCtx, const(char)* zTab) xFilter, + void* pCtx +); + +/* +* CAPI3REF: Generate A Changeset From A Session Object +*/ +int sqlite3session_changeset( + sqlite3_session* pSession, + int* pnChangeset, + void** ppChangeset +); + +/* +* CAPI3REF: Load The Difference Between Tables Into A Session +*/ +int sqlite3session_diff( + sqlite3_session* pSession, + const(char)* zFromDb, + const(char)* zTbl, + char** pzErrMsg +); + +/* +* CAPI3REF: Generate A Patchset From A Session Object +*/ +int sqlite3session_patchset( + sqlite3_session* pSession, + int* pnPatchset, + void** ppPatchset +); + +/* +* CAPI3REF: Test if a changeset has recorded any changes +*/ +int sqlite3session_isempty (sqlite3_session* pSession); + +/* +* CAPI3REF: Create An Iterator To Traverse A Changeset +*/ +int sqlite3changeset_start( + sqlite3_changeset_iter** pp, + int nChangeset, + void* pChangeset +); +/// Ditto +int sqlite3changeset_start_v2( + sqlite3_changeset_iter** pp, + int nChangeset, + void* pChangeset, + int flags +); + +/* +* CAPI3REF: Flags for sqlite3changeset_start_v2 +*/ +enum +{ + SQLITE_CHANGESETSTART_INVERT = 0x0002 +} + +/* +* CAPI3REF: Advance A Changeset Iterator +*/ +int sqlite3changeset_next(sqlite3_changeset_iter* pIter); + +/* +* CAPI3REF: Obtain The Current Operation From A Changeset Iterator +*/ +int sqlite3changeset_op( + sqlite3_changeset_iter* pIter, + const(char*)* pzTab, + int* pnCol, + int* pOp, + int* pbIndirect +); + +/* +* CAPI3REF: Obtain The Primary Key Definition Of A Table +*/ +int sqlite3changeset_pk( + sqlite3_changeset_iter* pIter, + ubyte** pabPK, + int* pnCol +); + +/* +* CAPI3REF: Obtain old.* Values From A Changeset Iterator +*/ +int sqlite3changeset_old( + sqlite3_changeset_iter* pIter, + int iVal, + sqlite3_value** ppValue +); + +/* +* CAPI3REF: Obtain new.* Values From A Changeset Iterator +*/ +int sqlite3changeset_new( + sqlite3_changeset_iter* pIter, + int iVal, + sqlite3_value** ppValue +); + +/* +* CAPI3REF: Obtain Conflicting Row Values From A Changeset Iterator +*/ +int sqlite3changeset_conflict( + sqlite3_changeset_iter* pIter, + int iVal, + sqlite3_value** ppValue +); + +/* +* CAPI3REF: Determine The Number Of Foreign Key Constraint Violations +*/ +int sqlite3changeset_fk_conflicts(sqlite3_changeset_iter* pIter, int* pnOut); + +/* +* CAPI3REF: Finalize A Changeset Iterator +*/ +int sqlite3changeset_finalize (sqlite3_changeset_iter* pIter); + +/* +* CAPI3REF: Invert A Changeset +*/ +int sqlite3changeset_invert( + int nIn, + const(void)* pIn, + int* pnOut, + void** ppOut +); + +/* +* CAPI3REF: Concatenate Two Changeset Objects +*/ +int sqlite3changeset_concat( + int nA, + void* pA, + int nB, + void* pB, + int* pnOut, + void** ppOut +); + +/* +* CAPI3REF: Changegroup Handle +*/ +struct sqlite3_changegroup; + +/* +* CAPI3REF: Create A New Changegroup Object +*/ +int sqlite3changegroup_new(sqlite3_changegroup** pp); + +/* +* CAPI3REF: Add A Changeset To A Changegroup +*/ +int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void* pData); + +/* +* CAPI3REF: Obtain A Composite Changeset From A Changegroup +*/ +int sqlite3changegroup_output( + sqlite3_changegroup*, + int* pnData, + void** ppData +); + +/* +* CAPI3REF: Delete A Changegroup Object +*/ +void sqlite3changegroup_delete (sqlite3_changegroup*); + +/* +* CAPI3REF: Apply A Changeset To A Database +*/ +int sqlite3changeset_apply( + sqlite3* db, + int nChangeset, + void* pChangeset, + int function(void* pCtx, const(char)* zTab) xFilter, + int function(void* pCtx, int eConflict, sqlite3_changeset_iter* p) xConflict, + void* pCtx +); +/// Ditto +int sqlite3changeset_apply_v2( + sqlite3* db, + int nChangeset, + void* pChangeset, + int function(void* pCtx, const(char)* zTab) xFilter, + int function(void* pCtx, int eConflict, sqlite3_changeset_iter* p) xConflict, + void* pCtx, + void** ppRebase, + int* pnRebase, + int flags +); + +/* +* CAPI3REF: Flags for sqlite3changeset_apply_v2 +*/ +enum +{ + SQLITE_CHANGESETAPPLY_NOSAVEPOINT = 0x0001, + SQLITE_CHANGESETAPPLY_INVERT = 0x0002 +} + +/* +* CAPI3REF: Constants Passed To The Conflict Handler +*/ +enum +{ + SQLITE_CHANGESET_DATA = 1, + SQLITE_CHANGESET_NOTFOUND = 2, + SQLITE_CHANGESET_CONFLICT = 3, + SQLITE_CHANGESET_CONSTRAINT = 4, + SQLITE_CHANGESET_FOREIGN_KEY = 5 +} + +/* +* CAPI3REF: Constants Returned By The Conflict Handler +*/ +enum +{ + SQLITE_CHANGESET_OMIT = 0, + SQLITE_CHANGESET_REPLACE = 1, + SQLITE_CHANGESET_ABORT = 2 +} + +/* +* CAPI3REF: Rebasing changesets +*/ +struct sqlite3_rebaser; + +/* +* CAPI3REF: Create a changeset rebaser object +*/ +int sqlite3rebaser_create(sqlite3_rebaser** ppNew); + +/* +* CAPI3REF: Configure a changeset rebaser object +*/ +int sqlite3rebaser_configure( + sqlite3_rebaser*, + int nRebase, + const(void)* pRebase +); + +/* +* CAPI3REF: Rebase a changeset +*/ +int sqlite3rebaser_rebase( + sqlite3_rebaser*, + int nIn, + const(void)* pIn, + int* pnOut, + void** ppOut +); + +/* +* CAPI3REF: Delete a changeset rebaser object +*/ +void sqlite3rebaser_delete(sqlite3_rebaser* p); + +/* +* CAPI3REF: Streaming Versions of API functions +*/ +int sqlite3changeset_apply_strm( + sqlite3* db, + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn, + int function (void* pCtx, const(char)* zTab) xFilter, + int function (void* pCtx, int eConflict, sqlite3_changeset_iter* p) xConflict, + void* pCtx +); +/// Ditto +int sqlite3changeset_apply_v2_strm( + sqlite3* db, + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn, + int function (void* pCtx, const(char)* zTab) xFilter, + int function (void* pCtx, int eConflict, sqlite3_changeset_iter* p) xConflict, + void* pCtx, + void** ppRebase, + int* pnRebase, + int flags +); +/// Ditto +int sqlite3changeset_concat_strm( + int function (void* pIn, void* pData, int* pnData) xInputA, + void* pInA, + int function (void* pIn, void* pData, int* pnData) xInputB, + void* pInB, + int function (void* pOut, const(void)* pData, int nData) xOutput, + void* pOut +); +/// Ditto +int sqlite3changeset_invert_strm( + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn, + int function (void* pOut, const(void)* pData, int nData) xOutput, + void* pOut +); +/// Ditto +int sqlite3changeset_start_strm( + sqlite3_changeset_iter** pp, + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn +); +/// Ditto +int sqlite3changeset_start_v2_strm( + sqlite3_changeset_iter** pp, + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn, + int flags +); +/// Ditto +int sqlite3session_changeset_strm( + sqlite3_session* pSession, + int function (void* pOut, const(void)* pData, int nData) xOutput, + void* pOut +); +/// Ditto +int sqlite3session_patchset_strm( + sqlite3_session* pSession, + int function (void* pOut, const(void)* pData, int nData) xOutput, + void* pOut +); +/// Ditto +int sqlite3changegroup_add_strm( + sqlite3_changegroup*, + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn +); +/// Ditto +int sqlite3changegroup_output_strm( + sqlite3_changegroup*, + int function (void* pOut, const(void)* pData, int nData) xOutput, + void* pOut +); +/// Ditto +int sqlite3rebaser_rebase_strm( + sqlite3_rebaser* pRebaser, + int function (void* pIn, void* pData, int* pnData) xInput, + void* pIn, + int function (void* pOut, const(void)* pData, int nData) xOutput, + void* pOut +); + +/* +* CAPI3REF: Configure global parameters +*/ +int sqlite3session_config(int op, void* pArg); + +/* +* CAPI3REF: Values for sqlite3session_config() +*/ +enum +{ + SQLITE_SESSION_CONFIG_STRMSIZE = 1 +} + +/****************************************************************************** +* Interfaces to extend FTS5. +*/ +struct Fts5Context; +/// Ditto +alias fts5_extension_function = void function( + const Fts5ExtensionApi *pApi, + Fts5Context *pFts, + sqlite3_context *pCtx, + int nVal, + sqlite3_value **apVal +); +/// Ditto +struct Fts5PhraseIter +{ + const(ubyte) *a; + const(ubyte) *b; +} +/// Ditto +struct Fts5ExtensionApi +{ + int iVersion; /** Currently always set to 3 */ + void* function(Fts5Context*) xUserData; + int function(Fts5Context*) xColumnCount; + int function(Fts5Context*, sqlite3_int64 *pnRow) xRowCount; + int function(Fts5Context*, int iCol, sqlite3_int64 *pnToken) xColumnTotalSize; + int function(Fts5Context*, + const char *pText, int nText, + void *pCtx, + int function(void*, int, const char*, int, int, int) xToken + ) xTokenize; + int function(Fts5Context*) xPhraseCount; + int function(Fts5Context*, int iPhrase) xPhraseSize; + int function(Fts5Context*, int *pnInst) xInstCount; + int function(Fts5Context*, int iIdx, int *piPhrase, int *piCol, int *piOff) xInst; + sqlite3_int64 function(Fts5Context*) xRowid; + int function(Fts5Context*, int iCol, const char **pz, int *pn) xColumnText; + int function(Fts5Context*, int iCol, int *pnToken) xColumnSize; + int function(Fts5Context*, int iPhrase, void *pUserData, + int function(const Fts5ExtensionApi*,Fts5Context*,void*) + ) xQueryPhrase; + int function(Fts5Context*, void *pAux, void function(void*) xDelete) xSetAuxdata; + void* function(Fts5Context*, int bClear) xGetAuxdata; + int function(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*, int*) xPhraseFirst; + void function(Fts5Context*, Fts5PhraseIter*, int *piCol, int *piOff) xPhraseNext; + int function(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*) xPhraseFirstColumn; + void function(Fts5Context*, Fts5PhraseIter*, int* piCol) xPhraseNextColumn; +} +/// Ditto +struct Fts5Tokenizer; +struct fts5_tokenizer +{ + int function(void*, const char **azArg, int nArg, Fts5Tokenizer **ppOut) xCreate; + void function(Fts5Tokenizer*) xDelete; + int function(Fts5Tokenizer*, + void *pCtx, + int flags, + const char *pText, int nText, + int function( + void *pCtx, + int tflags, + const char *pToken, + int nToken, + int iStart, + int iEnd + ) xToken + ) xTokenize; +} +/// Ditto +enum FTS5_TOKENIZE_QUERY = 0x0001; +/// Ditto +enum FTS5_TOKENIZE_PREFIX = 0x0002; +/// Ditto +enum FTS5_TOKENIZE_DOCUMENT = 0x0004; +/// Ditto +enum FTS5_TOKENIZE_AUX = 0x0008; +/// Ditto +enum FTS5_TOKEN_COLOCATED = 0x0001; +/// Ditto +struct fts5_api +{ + int iVersion; + + int function( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_tokenizer *pTokenizer, + void function(void*) xDestroy + ) xCreateTokenizer; + + int function( + fts5_api *pApi, + const char *zName, + void **ppContext, + fts5_tokenizer *pTokenizer + ) xFindTokenizer; + + int function( + fts5_api *pApi, + const char *zName, + void *pContext, + fts5_extension_function xFunction, + void function(void*) xDestroy + ) xCreateFunction; +}