wine/dlls/odbc32/unixlib.h
Hans Leidekker af3a8fa27b odbc32: Don't load libodbc.so dynamically.
Implementations are guarded by native function pointer checks but all functions
have been present in libodbc for a very long time, so it doesn't appear to be
needed anymore.

The loading code checks the LIB_ODBC_DRIVER_MANAGER environment variable to
allow the user to override the system version of the library. This can be
achieved by other means, if it's still needed.
2024-05-14 18:18:52 +02:00

1257 lines
23 KiB
C

/*
* Win32 ODBC functions
*
* Copyright 1999 Xiang Li, Corel Corporation
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*
* NOTES:
* Proxy ODBC driver manager. This manager delegates all ODBC
* calls to a real ODBC driver manager named by the environment
* variable LIB_ODBC_DRIVER_MANAGER, or to libodbc.so if the
* variable is not set.
*/
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wine/unixlib.h"
#define SUCCESS(ret) (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
enum sql_funcs
{
process_attach,
unix_SQLAllocConnect,
unix_SQLAllocEnv,
unix_SQLAllocHandle,
unix_SQLAllocHandleStd,
unix_SQLAllocStmt,
unix_SQLBindCol,
unix_SQLBindParam,
unix_SQLBindParameter,
unix_SQLBrowseConnect,
unix_SQLBrowseConnectW,
unix_SQLBulkOperations,
unix_SQLCancel,
unix_SQLCloseCursor,
unix_SQLColAttribute,
unix_SQLColAttributeW,
unix_SQLColAttributes,
unix_SQLColAttributesW,
unix_SQLColumnPrivileges,
unix_SQLColumnPrivilegesW,
unix_SQLColumns,
unix_SQLColumnsW,
unix_SQLConnect,
unix_SQLConnectW,
unix_SQLCopyDesc,
unix_SQLDataSources,
unix_SQLDataSourcesW,
unix_SQLDescribeCol,
unix_SQLDescribeColW,
unix_SQLDescribeParam,
unix_SQLDisconnect,
unix_SQLDriverConnect,
unix_SQLDriverConnectW,
unix_SQLDrivers,
unix_SQLDriversW,
unix_SQLEndTran,
unix_SQLError,
unix_SQLErrorW,
unix_SQLExecDirect,
unix_SQLExecDirectW,
unix_SQLExecute,
unix_SQLExtendedFetch,
unix_SQLFetch,
unix_SQLFetchScroll,
unix_SQLForeignKeys,
unix_SQLForeignKeysW,
unix_SQLFreeConnect,
unix_SQLFreeEnv,
unix_SQLFreeHandle,
unix_SQLFreeStmt,
unix_SQLGetConnectAttr,
unix_SQLGetConnectAttrW,
unix_SQLGetConnectOption,
unix_SQLGetConnectOptionW,
unix_SQLGetCursorName,
unix_SQLGetCursorNameW,
unix_SQLGetData,
unix_SQLGetDescField,
unix_SQLGetDescFieldW,
unix_SQLGetDescRec,
unix_SQLGetDescRecW,
unix_SQLGetDiagField,
unix_SQLGetDiagFieldW,
unix_SQLGetDiagRec,
unix_SQLGetDiagRecW,
unix_SQLGetEnvAttr,
unix_SQLGetFunctions,
unix_SQLGetInfo,
unix_SQLGetInfoW,
unix_SQLGetStmtAttr,
unix_SQLGetStmtAttrW,
unix_SQLGetStmtOption,
unix_SQLGetTypeInfo,
unix_SQLGetTypeInfoW,
unix_SQLMoreResults,
unix_SQLNativeSql,
unix_SQLNativeSqlW,
unix_SQLNumParams,
unix_SQLNumResultCols,
unix_SQLParamData,
unix_SQLParamOptions,
unix_SQLPrepare,
unix_SQLPrepareW,
unix_SQLPrimaryKeys,
unix_SQLPrimaryKeysW,
unix_SQLProcedureColumns,
unix_SQLProcedureColumnsW,
unix_SQLProcedures,
unix_SQLProceduresW,
unix_SQLPutData,
unix_SQLRowCount,
unix_SQLSetConnectAttr,
unix_SQLSetConnectAttrW,
unix_SQLSetConnectOption,
unix_SQLSetConnectOptionW,
unix_SQLSetCursorName,
unix_SQLSetCursorNameW,
unix_SQLSetDescField,
unix_SQLSetDescFieldW,
unix_SQLSetDescRec,
unix_SQLSetEnvAttr,
unix_SQLSetParam,
unix_SQLSetPos,
unix_SQLSetScrollOptions,
unix_SQLSetStmtAttr,
unix_SQLSetStmtAttrW,
unix_SQLSetStmtOption,
unix_SQLSpecialColumns,
unix_SQLSpecialColumnsW,
unix_SQLStatistics,
unix_SQLStatisticsW,
unix_SQLTablePrivileges,
unix_SQLTablePrivilegesW,
unix_SQLTables,
unix_SQLTablesW,
unix_SQLTransact,
unix_funcs_count
};
struct param
{
INT64 len; /* result length stored in Unix lib */
void *ptr; /* result length ptr passed by client */
};
struct param_binding
{
UINT32 count;
struct param *param;
};
struct handle
{
UINT64 unix_handle;
struct param_binding bind_col;
struct param_binding bind_param;
struct param_binding bind_parameter;
};
struct SQLAllocConnect_params
{
UINT64 EnvironmentHandle;
UINT64 ConnectionHandle;
};
struct SQLAllocEnv_params
{
UINT64 EnvironmentHandle;
};
struct SQLAllocHandle_params
{
INT16 HandleType;
UINT64 InputHandle;
UINT64 OutputHandle;
};
struct SQLAllocHandleStd_params
{
INT16 HandleType;
UINT64 InputHandle;
UINT64 OutputHandle;
};
struct SQLAllocStmt_params
{
UINT64 ConnectionHandle;
UINT64 StatementHandle;
};
struct SQLBindCol_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
INT16 TargetType;
void *TargetValue;
INT64 BufferLength;
INT64 *StrLen_or_Ind;
};
struct SQLBindParam_params
{
UINT64 StatementHandle;
UINT16 ParameterNumber;
INT16 ValueType;
INT16 ParameterType;
UINT64 LengthPrecision;
INT16 ParameterScale;
void *ParameterValue;
INT64 *StrLen_or_Ind;
};
struct SQLBindParameter_params
{
UINT64 StatementHandle;
UINT16 ParameterNumber;
INT16 InputOutputType;
INT16 ValueType;
INT16 ParameterType;
UINT64 ColumnSize;
INT16 DecimalDigits;
void *ParameterValue;
INT64 BufferLength;
INT64 *StrLen_or_Ind;
};
struct SQLBrowseConnect_params
{
UINT64 ConnectionHandle;
UCHAR *InConnectionString;
INT16 StringLength1;
UCHAR *OutConnectionString;
INT16 BufferLength;
INT16 *StringLength2;
};
struct SQLBrowseConnectW_params
{
UINT64 ConnectionHandle;
WCHAR *InConnectionString;
INT16 StringLength1;
WCHAR *OutConnectionString;
INT16 BufferLength;
INT16 *StringLength2;
};
struct SQLBulkOperations_params
{
UINT64 StatementHandle;
INT16 Operation;
};
struct SQLCancel_params
{
UINT64 StatementHandle;
};
struct SQLCloseCursor_params
{
UINT64 StatementHandle;
};
struct SQLColAttribute_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
UINT16 FieldIdentifier;
void *CharacterAttribute;
INT16 BufferLength;
INT16 *StringLength;
INT64 *NumericAttribute;
};
struct SQLColAttributeW_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
UINT16 FieldIdentifier;
void *CharacterAttribute;
INT16 BufferLength;
INT16 *StringLength;
INT64 *NumericAttribute;
};
struct SQLColAttributes_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
UINT16 FieldIdentifier;
void *CharacterAttributes;
INT16 BufferLength;
INT16 *StringLength;
INT64 *NumericAttributes;
};
struct SQLColAttributesW_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
UINT16 FieldIdentifier;
void *CharacterAttributes;
INT16 BufferLength;
INT16 *StringLength;
INT64 *NumericAttributes;
};
struct SQLColumnPrivileges_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
UCHAR *ColumnName;
INT16 NameLength4;
};
struct SQLColumnPrivilegesW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
WCHAR *ColumnName;
INT16 NameLength4;
};
struct SQLColumns_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
UCHAR *ColumnName;
INT16 NameLength4;
};
struct SQLColumnsW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
WCHAR *ColumnName;
INT16 NameLength4;
};
struct SQLConnect_params
{
UINT64 ConnectionHandle;
UCHAR *ServerName;
INT16 NameLength1;
UCHAR *UserName;
INT16 NameLength2;
UCHAR *Authentication;
INT16 NameLength3;
};
struct SQLConnectW_params
{
UINT64 ConnectionHandle;
WCHAR *ServerName;
INT16 NameLength1;
WCHAR *UserName;
INT16 NameLength2;
WCHAR *Authentication;
INT16 NameLength3;
};
struct SQLCopyDesc_params
{
UINT64 SourceDescHandle;
UINT64 TargetDescHandle;
};
struct SQLDataSources_params
{
UINT64 EnvironmentHandle;
UINT16 Direction;
UCHAR *ServerName;
INT16 BufferLength1;
INT16 *NameLength1;
UCHAR *Description;
INT16 BufferLength2;
INT16 *NameLength2;
};
struct SQLDataSourcesW_params
{
UINT64 EnvironmentHandle;
UINT16 Direction;
WCHAR *ServerName;
INT16 BufferLength1;
INT16 *NameLength1;
WCHAR *Description;
INT16 BufferLength2;
INT16 *NameLength2;
};
struct SQLDescribeCol_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
UCHAR *ColumnName;
INT16 BufferLength;
INT16 *NameLength;
INT16 *DataType;
UINT64 *ColumnSize;
INT16 *DecimalDigits;
INT16 *Nullable;
};
struct SQLDescribeColW_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
WCHAR *ColumnName;
INT16 BufferLength;
INT16 *NameLength;
INT16 *DataType;
UINT64 *ColumnSize;
INT16 *DecimalDigits;
INT16 *Nullable;
};
struct SQLDescribeParam_params
{
UINT64 StatementHandle;
UINT16 ParameterNumber;
INT16 *DataType;
UINT64 *ParameterSize;
INT16 *DecimalDigits;
INT16 *Nullable;
};
struct SQLDisconnect_params
{
UINT64 ConnectionHandle;
};
struct SQLDriverConnect_params
{
UINT64 ConnectionHandle;
void *WindowHandle;
UCHAR *ConnectionString;
INT16 Length;
UCHAR *OutConnectionString;
INT16 BufferLength;
INT16 *Length2;
UINT16 DriverCompletion;
};
struct SQLDriverConnectW_params
{
UINT64 ConnectionHandle;
void *WindowHandle;
WCHAR *InConnectionString;
INT16 Length;
WCHAR *OutConnectionString;
INT16 BufferLength;
INT16 *Length2;
UINT16 DriverCompletion;
};
struct SQLDrivers_params
{
UINT64 EnvironmentHandle;
UINT16 Direction;
UCHAR *DriverDescription;
INT16 BufferLength1;
INT16 *DescriptionLength;
UCHAR *DriverAttributes;
INT16 BufferLength2;
INT16 *AttributesLength;
};
struct SQLDriversW_params
{
UINT64 EnvironmentHandle;
UINT16 Direction;
WCHAR *DriverDescription;
INT16 BufferLength1;
INT16 *DescriptionLength;
WCHAR *DriverAttributes;
INT16 BufferLength2;
INT16 *AttributesLength;
};
struct SQLEndTran_params
{
INT16 HandleType;
UINT64 Handle;
INT16 CompletionType;
};
struct SQLError_params
{
UINT64 EnvironmentHandle;
UINT64 ConnectionHandle;
UINT64 StatementHandle;
UCHAR *SqlState;
INT32 *NativeError;
UCHAR *MessageText;
INT16 BufferLength;
INT16 *TextLength;
};
struct SQLErrorW_params
{
UINT64 EnvironmentHandle;
UINT64 ConnectionHandle;
UINT64 StatementHandle;
WCHAR *SqlState;
INT32 *NativeError;
WCHAR *MessageText;
INT16 BufferLength;
INT16 *TextLength;
};
struct SQLExecDirect_params
{
UINT64 StatementHandle;
UCHAR *StatementText;
INT32 TextLength;
};
struct SQLExecDirectW_params
{
UINT64 StatementHandle;
WCHAR *StatementText;
INT32 TextLength;
};
struct SQLExecute_params
{
UINT64 StatementHandle;
};
struct SQLExtendedFetch_params
{
UINT64 StatementHandle;
UINT16 FetchOrientation;
INT64 FetchOffset;
UINT64 *RowCount;
UINT16 *RowStatusArray;
};
struct SQLFetch_params
{
UINT64 StatementHandle;
};
struct SQLFetchScroll_params
{
UINT64 StatementHandle;
INT16 FetchOrientation;
INT64 FetchOffset;
};
struct SQLForeignKeys_params
{
UINT64 StatementHandle;
UCHAR *PkCatalogName;
INT16 NameLength1;
UCHAR *PkSchemaName;
INT16 NameLength2;
UCHAR *PkTableName;
INT16 NameLength3;
UCHAR *FkCatalogName;
INT16 NameLength4;
UCHAR *FkSchemaName;
INT16 NameLength5;
UCHAR *FkTableName;
INT16 NameLength6;
};
struct SQLForeignKeysW_params
{
UINT64 StatementHandle;
WCHAR *PkCatalogName;
INT16 NameLength1;
WCHAR *PkSchemaName;
INT16 NameLength2;
WCHAR *PkTableName;
INT16 NameLength3;
WCHAR *FkCatalogName;
INT16 NameLength4;
WCHAR *FkSchemaName;
INT16 NameLength5;
WCHAR *FkTableName;
INT16 NameLength6;
};
struct SQLFreeConnect_params
{
UINT64 ConnectionHandle;
};
struct SQLFreeEnv_params
{
UINT64 EnvironmentHandle;
};
struct SQLFreeHandle_params
{
INT16 HandleType;
UINT64 Handle;
};
struct SQLFreeStmt_params
{
UINT64 StatementHandle;
UINT16 Option;
};
struct SQLGetConnectAttr_params
{
UINT64 ConnectionHandle;
INT32 Attribute;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
};
struct SQLGetConnectAttrW_params
{
UINT64 ConnectionHandle;
INT32 Attribute;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
};
struct SQLGetConnectOption_params
{
UINT64 ConnectionHandle;
UINT16 Option;
void *Value;
};
struct SQLGetConnectOptionW_params
{
UINT64 ConnectionHandle;
INT16 Option;
void *Value;
};
struct SQLGetCursorName_params
{
UINT64 StatementHandle;
UCHAR *CursorName;
INT16 BufferLength;
INT16 *NameLength;
};
struct SQLGetCursorNameW_params
{
UINT64 StatementHandle;
WCHAR *CursorName;
INT16 BufferLength;
INT16 *NameLength;
};
struct SQLGetData_params
{
UINT64 StatementHandle;
UINT16 ColumnNumber;
INT16 TargetType;
void *TargetValue;
INT64 BufferLength;
INT64 *StrLen_or_Ind;
};
struct SQLGetDescField_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
INT16 FieldIdentifier;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
}
;
struct SQLGetDescFieldW_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
INT16 FieldIdentifier;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
};
struct SQLGetDescRec_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
UCHAR *Name;
INT16 BufferLength;
INT16 *StringLength;
INT16 *Type;
INT16 *SubType;
INT64 *Length;
INT16 *Precision;
INT16 *Scale;
INT16 *Nullable;
};
struct SQLGetDescRecW_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
WCHAR *Name;
INT16 BufferLength;
INT16 *StringLength;
INT16 *Type;
INT16 *SubType;
INT64 *Length;
INT16 *Precision;
INT16 *Scale;
INT16 *Nullable;
};
struct SQLGetDiagField_params
{
INT16 HandleType;
UINT64 Handle;
INT16 RecNumber;
INT16 DiagIdentifier;
void *DiagInfo;
INT16 BufferLength;
INT16 *StringLength;
};
struct SQLGetDiagFieldW_params
{
INT16 HandleType;
UINT64 Handle;
INT16 RecNumber;
INT16 DiagIdentifier;
void *DiagInfo;
INT16 BufferLength;
INT16 *StringLength;
};
struct SQLGetDiagRec_params
{
INT16 HandleType;
UINT64 Handle;
INT16 RecNumber;
UCHAR *SqlState;
INT32 *NativeError;
UCHAR *MessageText;
INT16 BufferLength;
INT16 *TextLength;
};
struct SQLGetDiagRecW_params
{
INT16 HandleType;
UINT64 Handle;
INT16 RecNumber;
WCHAR *SqlState;
INT32 *NativeError;
WCHAR *MessageText;
INT16 BufferLength;
INT16 *TextLength;
};
struct SQLGetEnvAttr_params
{
UINT64 EnvironmentHandle;
INT32 Attribute;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
};
struct SQLGetFunctions_params
{
UINT64 ConnectionHandle;
UINT16 FunctionId;
UINT16 *Supported;
};
struct SQLGetInfo_params
{
UINT64 ConnectionHandle;
UINT16 InfoType;
void *InfoValue;
INT16 BufferLength;
INT16 *StringLength;
};
struct SQLGetInfoW_params
{
UINT64 ConnectionHandle;
UINT16 InfoType;
void *InfoValue;
INT16 BufferLength;
INT16 *StringLength;
};
struct SQLGetStmtAttr_params
{
UINT64 StatementHandle;
INT32 Attribute;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
};
struct SQLGetStmtAttrW_params
{
UINT64 StatementHandle;
INT32 Attribute;
void *Value;
INT32 BufferLength;
INT32 *StringLength;
};
struct SQLGetStmtOption_params
{
UINT64 StatementHandle;
UINT16 Option;
void *Value;
};
struct SQLGetTypeInfo_params
{
UINT64 StatementHandle;
INT16 DataType;
};
struct SQLGetTypeInfoW_params
{
UINT64 StatementHandle;
INT16 DataType;
};
struct SQLMoreResults_params
{
UINT64 StatementHandle;
};
struct SQLNativeSql_params
{
UINT64 ConnectionHandle;
UCHAR *InStatementText;
INT32 TextLength1;
UCHAR *OutStatementText;
INT32 BufferLength;
INT32 *TextLength2;
};
struct SQLNativeSqlW_params
{
UINT64 ConnectionHandle;
WCHAR *InStatementText;
INT32 TextLength1;
WCHAR *OutStatementText;
INT32 BufferLength;
INT32 *TextLength2;
};
struct SQLNumParams_params
{
UINT64 StatementHandle;
INT16 *ParameterCount;
};
struct SQLNumResultCols_params
{
UINT64 StatementHandle;
INT16 *ColumnCount;
};
struct SQLParamData_params
{
UINT64 StatementHandle;
void *Value;
};
struct SQLParamOptions_params
{
UINT64 StatementHandle;
UINT64 RowCount;
UINT64 *RowNumber;
};
struct SQLPrepare_params
{
UINT64 StatementHandle;
UCHAR *StatementText;
INT32 TextLength;
};
struct SQLPrepareW_params
{
UINT64 StatementHandle;
WCHAR *StatementText;
INT32 TextLength;
};
struct SQLPrimaryKeys_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
};
struct SQLPrimaryKeysW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
};
struct SQLProcedureColumns_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *ProcName;
INT16 NameLength3;
UCHAR *ColumnName;
INT16 NameLength4;
};
struct SQLProcedureColumnsW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *ProcName;
INT16 NameLength3;
WCHAR *ColumnName;
INT16 NameLength4;
};
struct SQLProcedures_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *ProcName;
INT16 NameLength3;
};
struct SQLProceduresW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *ProcName;
INT16 NameLength3;
};
struct SQLPutData_params
{
UINT64 StatementHandle;
void *Data;
INT64 StrLen_or_Ind;
};
struct SQLRowCount_params
{
UINT64 StatementHandle;
INT64 *RowCount;
};
struct SQLSetConnectAttr_params
{
UINT64 ConnectionHandle;
INT32 Attribute;
void *Value;
INT32 StringLength;
};
struct SQLSetConnectAttrW_params
{
UINT64 ConnectionHandle;
INT32 Attribute;
void *Value;
INT32 StringLength;
};
struct SQLSetConnectOption_params
{
UINT64 ConnectionHandle;
UINT16 Option;
UINT64 Value;
};
struct SQLSetConnectOptionW_params
{
UINT64 ConnectionHandle;
UINT16 Option;
UINT64 Value;
};
struct SQLSetCursorName_params
{
UINT64 StatementHandle;
UCHAR *CursorName;
INT16 NameLength;
};
struct SQLSetCursorNameW_params
{
UINT64 StatementHandle;
WCHAR *CursorName;
INT16 NameLength;
};
struct SQLSetDescField_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
INT16 FieldIdentifier;
void *Value;
INT32 BufferLength;
};
struct SQLSetDescFieldW_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
INT16 FieldIdentifier;
void *Value;
INT32 BufferLength;
};
struct SQLSetDescRec_params
{
UINT64 DescriptorHandle;
INT16 RecNumber;
INT16 Type;
INT16 SubType;
INT64 Length;
INT16 Precision;
INT16 Scale;
void *Data;
INT64 *StringLength;
INT64 *Indicator;
};
struct SQLSetEnvAttr_params
{
UINT64 EnvironmentHandle;
INT32 Attribute;
void *Value;
INT32 StringLength;
};
struct SQLSetParam_params
{
UINT64 StatementHandle;
UINT16 ParameterNumber;
INT16 ValueType;
INT16 ParameterType;
UINT64 LengthPrecision;
INT16 ParameterScale;
void *ParameterValue;
INT64 *StrLen_or_Ind;
};
struct SQLSetPos_params
{
UINT64 StatementHandle;
UINT64 RowNumber;
UINT16 Operation;
UINT16 LockType;
};
struct SQLSetScrollOptions_params
{
UINT64 StatementHandle;
UINT16 Concurrency;
INT64 KeySetSize;
UINT16 RowSetSize;
};
struct SQLSetStmtAttr_params
{
UINT64 StatementHandle;
INT32 Attribute;
void *Value;
INT32 StringLength;
};
struct SQLSetStmtAttrW_params
{
UINT64 StatementHandle;
INT32 Attribute;
void *Value;
INT32 StringLength;
};
struct SQLSetStmtOption_params
{
UINT64 StatementHandle;
UINT16 Option;
UINT64 Value;
};
struct SQLSpecialColumns_params
{
UINT64 StatementHandle;
UINT16 IdentifierType;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
UINT16 Scope;
UINT16 Nullable;
};
struct SQLSpecialColumnsW_params
{
UINT64 StatementHandle;
UINT16 IdentifierType;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
UINT16 Scope;
UINT16 Nullable;
};
struct SQLStatistics_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
UINT16 Unique;
UINT16 Reserved;
};
struct SQLStatisticsW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
UINT16 Unique;
UINT16 Reserved;
};
struct SQLTablePrivileges_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
};
struct SQLTablePrivilegesW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
};
struct SQLTables_params
{
UINT64 StatementHandle;
UCHAR *CatalogName;
INT16 NameLength1;
UCHAR *SchemaName;
INT16 NameLength2;
UCHAR *TableName;
INT16 NameLength3;
UCHAR *TableType;
INT16 NameLength4;
};
struct SQLTablesW_params
{
UINT64 StatementHandle;
WCHAR *CatalogName;
INT16 NameLength1;
WCHAR *SchemaName;
INT16 NameLength2;
WCHAR *TableName;
INT16 NameLength3;
WCHAR *TableType;
INT16 NameLength4;
};
struct SQLTransact_params
{
UINT64 EnvironmentHandle;
UINT64 ConnectionHandle;
UINT16 CompletionType;
};