📄 odbc.py.i
字号:
case SQL_CONVERT_NUMERIC: case SQL_CONVERT_REAL: case SQL_CONVERT_SMALLINT: case SQL_CONVERT_TIME: case SQL_CONVERT_TIMESTAMP: case SQL_CONVERT_TINYINT: case SQL_CONVERT_VARBINARY: case SQL_CONVERT_VARCHAR: case SQL_CONVERT_FUNCTIONS: case SQL_CREATE_ASSERTION: case SQL_CREATE_CHARACTER_SET: case SQL_CREATE_COLLATION: case SQL_CREATE_DOMAIN: case SQL_CREATE_SCHEMA: case SQL_CREATE_TABLE: case SQL_CREATE_TRANSLATION: case SQL_CREATE_VIEW:#ifdef SQL_CURSOR_ROLLBACK_SQL_CURSOR_SENSITIVITY case SQL_CURSOR_ROLLBACK_SQL_CURSOR_SENSITIVITY:#endif case SQL_DATETIME_LITERALS: case SQL_DDL_INDEX: case SQL_DEFAULT_TXN_ISOLATION: case SQL_DRIVER_HDBC:#if 0 /* not implemented */ case SQL_DRIVER_HENV: case SQL_DRIVER_HDESC:#endif case SQL_DRIVER_HLIB: case SQL_DRIVER_HSTMT: case SQL_DROP_ASSERTION: case SQL_DROP_CHARACTER_SET: case SQL_DROP_COLLATION: case SQL_DROP_DOMAIN: case SQL_DROP_SCHEMA: case SQL_DROP_TABLE: case SQL_DROP_TRANSLATION: case SQL_DROP_VIEW: case SQL_DYNAMIC_CURSOR_ATTRIBUTES1: case SQL_DYNAMIC_CURSOR_ATTRIBUTES2: case SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1: case SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2: case SQL_GETDATA_EXTENSIONS: case SQL_INDEX_KEYWORDS: case SQL_INFO_SCHEMA_VIEWS: case SQL_INSERT_STATEMENT: case SQL_KEYSET_CURSOR_ATTRIBUTES1: case SQL_KEYSET_CURSOR_ATTRIBUTES2: case SQL_MAX_ASYNC_CONCURRENT_STATEMENTS: case SQL_MAX_BINARY_LITERAL_LEN: case SQL_MAX_CHAR_LITERAL_LEN: case SQL_MAX_INDEX_SIZE: case SQL_MAX_ROW_SIZE: case SQL_MAX_STATEMENT_LEN: case SQL_NUMERIC_FUNCTIONS: case SQL_ODBC_INTERFACE_CONFORMANCE: case SQL_OJ_CAPABILITIES: case SQL_PARAM_ARRAY_ROW_COUNTS: case SQL_PARAM_ARRAY_SELECTS: case SQL_SCHEMA_USAGE: case SQL_SCROLL_OPTIONS: case SQL_SQL_CONFORMANCE: case SQL_SQL92_DATETIME_FUNCTIONS: case SQL_SQL92_FOREIGN_KEY_DELETE_RULE: case SQL_SQL92_FOREIGN_KEY_UPDATE_RULE: case SQL_SQL92_GRANT: case SQL_SQL92_NUMERIC_VALUE_FUNCTIONS: case SQL_SQL92_PREDICATES: case SQL_SQL92_RELATIONAL_JOIN_OPERATORS: case SQL_SQL92_REVOKE: case SQL_SQL92_ROW_VALUE_CONSTRUCTOR: case SQL_SQL92_STRING_FUNCTIONS: case SQL_SQL92_VALUE_EXPRESSIONS: case SQL_STANDARD_CLI_CONFORMANCE: case SQL_STATIC_CURSOR_ATTRIBUTES1: case SQL_STATIC_CURSOR_ATTRIBUTES2: case SQL_STRING_FUNCTIONS: case SQL_SUBQUERIES: case SQL_SYSTEM_FUNCTIONS: case SQL_TIMEDATE_ADD_INTERVALS: case SQL_TIMEDATE_DIFF_INTERVALS: case SQL_TIMEDATE_FUNCTIONS: case SQL_TXN_ISOLATION_OPTION: case SQL_UNION: /* SQLUINTEGER */ o = PyInt_FromLong((long) * (SQLUINTEGER *) $2); break; case SQL_POS_OPERATIONS: /* SQLINTEGER */ o = PyInt_FromLong((long) * (SQLINTEGER *) $2); break; default: PyErr_SetString(ErrorObject, "bad info type"); SWIG_fail; } $result = t_output_helper($result, o);}// SQLGetInfoW// InfoTypes SQL_DRIVER_HDESC and SQL_DRIVER_HSTMS use *InfoValue as// input/output value. This has not (yet) been implemented by this// code.%ignore SQLGetInfoA;%typemap(in, numinputs=1) (SQLUSMALLINT fInfoType, SQLPOINTER rgbInfoValue, SQLSMALLINT cbInfoValueMax, SQLSMALLINT *pcbInfoValue) (char tempbuf[BUFLEN], $*4_type len) { $1 = ($1_ltype) PyInt_AsLong($input); if (PyErr_Occurred()) SWIG_fail; $2 = tempbuf; $3 = len = sizeof(tempbuf); $4 = &len;};%typemap(argout,fragment="t_output_helper") (SQLUSMALLINT fInfoType, SQLPOINTER rgbInfoValue, SQLSMALLINT cbInfoValueMax, SQLSMALLINT *pcbInfoValue) { PyObject *o; switch ($1) { case SQL_ACCESSIBLE_PROCEDURES: case SQL_ACCESSIBLE_TABLES: case SQL_CATALOG_NAME: case SQL_CATALOG_NAME_SEPARATOR: case SQL_CATALOG_TERM: case SQL_COLLATION_SEQ: case SQL_COLUMN_ALIAS: case SQL_DATA_SOURCE_NAME: case SQL_DATA_SOURCE_READ_ONLY: case SQL_DATABASE_NAME: case SQL_DBMS_NAME: case SQL_DESCRIBE_PARAMETER: case SQL_DM_VER: case SQL_DRIVER_NAME: case SQL_DRIVER_ODBC_VER: case SQL_DRIVER_VER: case SQL_EXPRESSIONS_IN_ORDERBY: case SQL_IDENTIFIER_QUOTE_CHAR: case SQL_INTEGRITY: case SQL_KEYWORDS: case SQL_LIKE_ESCAPE_CLAUSE: case SQL_MAX_ROW_SIZE_INCLUDES_LONG: case SQL_MULT_RESULT_SETS: case SQL_MULTIPLE_ACTIVE_TXN: case SQL_NEED_LONG_DATA_LEN: case SQL_ODBC_VER: case SQL_ORDER_BY_COLUMNS_IN_SELECT: case SQL_PROCEDURE_TERM: case SQL_PROCEDURES: case SQL_ROW_UPDATES: case SQL_SCHEMA_TERM: case SQL_SEARCH_PATTERN_ESCAPE: case SQL_SERVER_NAME: case SQL_SPECIAL_CHARACTERS: case SQL_TABLE_TERM: case SQL_USER_NAME: case SQL_XOPEN_CLI_YEAR: /* string */ o = PyUnicode_FromSqlWChar((SQLWCHAR *) $2, (*$4 >= $3 ? (SQLSMALLINT) ($3 - sizeof(SQLWCHAR)) : *$4) / sizeof(SQLWCHAR)); break; case SQL_ACTIVE_ENVIRONMENTS: case SQL_CATALOG_LOCATION: case SQL_CONCAT_NULL_BEHAVIOR: case SQL_CORRELATION_NAME: case SQL_CURSOR_COMMIT_BEHAVIOR: case SQL_CURSOR_ROLLBACK_BEHAVIOR: case SQL_FILE_USAGE: case SQL_GROUP_BY: case SQL_IDENTIFIER_CASE: case SQL_MAX_CATALOG_NAME_LEN: case SQL_MAX_COLUMN_NAME_LEN: case SQL_MAX_COLUMNS_IN_GROUP_BY: case SQL_MAX_COLUMNS_IN_INDEX: case SQL_MAX_COLUMNS_IN_ORDER_BY: case SQL_MAX_COLUMNS_IN_SELECT: case SQL_MAX_COLUMNS_IN_TABLE: case SQL_MAX_CONCURRENT_ACTIVITIES: case SQL_MAX_CURSOR_NAME_LEN: case SQL_MAX_DRIVER_CONNECTIONS: case SQL_MAX_IDENTIFIER_LEN: case SQL_MAX_PROCEDURE_NAME_LEN: case SQL_MAX_SCHEMA_NAME_LEN: case SQL_MAX_TABLE_NAME_LEN: case SQL_MAX_TABLES_IN_SELECT: case SQL_MAX_USER_NAME_LEN: case SQL_NON_NULLABLE_COLUMNS: case SQL_NULL_COLLATION: case SQL_QUOTED_IDENTIFIER_CASE: case SQL_TXN_CAPABLE: case SQL_FETCH_DIRECTION: case SQL_ODBC_API_CONFORMANCE: case SQL_ODBC_SQL_CONFORMANCE: case SQL_SCROLL_CONCURRENCY: /* SQLUSMALLINT */ o = PyInt_FromLong((long) * (SQLUSMALLINT *) $2); break; case SQL_AGGREGATE_FUNCTIONS: case SQL_ALTER_DOMAIN: case SQL_ALTER_TABLE: case SQL_ASYNC_MODE: case SQL_BATCH_ROW_COUNT: case SQL_BATCH_SUPPORT: case SQL_BOOKMARK_PERSISTENCE: case SQL_CATALOG_USAGE: case SQL_CONVERT_BIGINT: case SQL_CONVERT_BINARY: case SQL_CONVERT_BIT: case SQL_CONVERT_CHAR:#ifdef SQL_CONVERT_GUID case SQL_CONVERT_GUID:#endif case SQL_CONVERT_DATE: case SQL_CONVERT_DECIMAL: case SQL_CONVERT_DOUBLE: case SQL_CONVERT_FLOAT: case SQL_CONVERT_INTEGER: case SQL_CONVERT_INTERVAL_YEAR_MONTH: case SQL_CONVERT_INTERVAL_DAY_TIME: case SQL_CONVERT_LONGVARBINARY: case SQL_CONVERT_LONGVARCHAR: case SQL_CONVERT_NUMERIC: case SQL_CONVERT_REAL: case SQL_CONVERT_SMALLINT: case SQL_CONVERT_TIME: case SQL_CONVERT_TIMESTAMP: case SQL_CONVERT_TINYINT: case SQL_CONVERT_VARBINARY: case SQL_CONVERT_VARCHAR: case SQL_CONVERT_FUNCTIONS: case SQL_CREATE_ASSERTION: case SQL_CREATE_CHARACTER_SET: case SQL_CREATE_COLLATION: case SQL_CREATE_DOMAIN: case SQL_CREATE_SCHEMA: case SQL_CREATE_TABLE: case SQL_CREATE_TRANSLATION: case SQL_CREATE_VIEW:#ifdef SQL_CURSOR_ROLLBACK_SQL_CURSOR_SENSITIVITY case SQL_CURSOR_ROLLBACK_SQL_CURSOR_SENSITIVITY:#endif case SQL_DATETIME_LITERALS: case SQL_DDL_INDEX: case SQL_DEFAULT_TXN_ISOLATION: case SQL_DRIVER_HDBC:#if 0 /* not implemented */ case SQL_DRIVER_HENV: case SQL_DRIVER_HDESC:#endif case SQL_DRIVER_HLIB: case SQL_DRIVER_HSTMT: case SQL_DROP_ASSERTION: case SQL_DROP_CHARACTER_SET: case SQL_DROP_COLLATION: case SQL_DROP_DOMAIN: case SQL_DROP_SCHEMA: case SQL_DROP_TABLE: case SQL_DROP_TRANSLATION: case SQL_DROP_VIEW: case SQL_DYNAMIC_CURSOR_ATTRIBUTES1: case SQL_DYNAMIC_CURSOR_ATTRIBUTES2: case SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1: case SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2: case SQL_GETDATA_EXTENSIONS: case SQL_INDEX_KEYWORDS: case SQL_INFO_SCHEMA_VIEWS: case SQL_INSERT_STATEMENT: case SQL_KEYSET_CURSOR_ATTRIBUTES1: case SQL_KEYSET_CURSOR_ATTRIBUTES2: case SQL_MAX_ASYNC_CONCURRENT_STATEMENTS: case SQL_MAX_BINARY_LITERAL_LEN: case SQL_MAX_CHAR_LITERAL_LEN: case SQL_MAX_INDEX_SIZE: case SQL_MAX_ROW_SIZE: case SQL_MAX_STATEMENT_LEN: case SQL_NUMERIC_FUNCTIONS: case SQL_ODBC_INTERFACE_CONFORMANCE: case SQL_OJ_CAPABILITIES: case SQL_PARAM_ARRAY_ROW_COUNTS: case SQL_PARAM_ARRAY_SELECTS: case SQL_SCHEMA_USAGE: case SQL_SCROLL_OPTIONS: case SQL_SQL_CONFORMANCE: case SQL_SQL92_DATETIME_FUNCTIONS: case SQL_SQL92_FOREIGN_KEY_DELETE_RULE: case SQL_SQL92_FOREIGN_KEY_UPDATE_RULE: case SQL_SQL92_GRANT: case SQL_SQL92_NUMERIC_VALUE_FUNCTIONS: case SQL_SQL92_PREDICATES: case SQL_SQL92_RELATIONAL_JOIN_OPERATORS: case SQL_SQL92_REVOKE: case SQL_SQL92_ROW_VALUE_CONSTRUCTOR: case SQL_SQL92_STRING_FUNCTIONS: case SQL_SQL92_VALUE_EXPRESSIONS: case SQL_STANDARD_CLI_CONFORMANCE: case SQL_STATIC_CURSOR_ATTRIBUTES1: case SQL_STATIC_CURSOR_ATTRIBUTES2: case SQL_STRING_FUNCTIONS: case SQL_SUBQUERIES: case SQL_SYSTEM_FUNCTIONS: case SQL_TIMEDATE_ADD_INTERVALS: case SQL_TIMEDATE_DIFF_INTERVALS: case SQL_TIMEDATE_FUNCTIONS: case SQL_TXN_ISOLATION_OPTION: case SQL_UNION: case SQL_LOCK_TYPES: case SQL_POS_OPERATIONS: case SQL_POSITIONED_STATEMENTS: /* SQLUINTEGER */ o = PyInt_FromLong((long) * (SQLUINTEGER *) $2); break; case SQL_STATIC_SENSITIVITY: /* SQLINTEGER */ o = PyInt_FromLong((long) * (SQLINTEGER *) $2); break; default: PyErr_SetString(ErrorObject, "bad info type"); SWIG_fail; } $result = t_output_helper($result, o);}// SQLNativeSql, SQLNativeSqlA%apply (char *STRING, int LENGTH) {(SQLCHAR *szSqlStrIn, SQLINTEGER cbSqlStrIn)};%apply (char *OUTBUF, int BUFSIZE, int *OUTSIZE) {(SQLCHAR *szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER *pcbSqlStr)};// SQLNativeSqlW%apply (SQLWCHAR *STRING, int LENGTH) {(SQLWCHAR *szSqlStrIn, SQLINTEGER cbSqlStrIn)};%apply (SQLWCHAR *OUTBUF, int BUFSIZE, int *OUTSIZE) {(SQLWCHAR *szSqlStr, SQLINTEGER cbSqlStrMax, SQLINTEGER *pcbSqlStr)};// SQLNumParams%apply int *OUTPUT {SQLSMALLINT *pcpar};// SQLNumResultCols%apply int *OUTPUT {SQLSMALLINT *ColumnCount};%ignore SQLParamOptions;// SQLPutData (questionable)%apply (char *STRING, int LENGTH) {(SQLPOINTER Data, SQLLEN StrLen_or_Ind)};// SQLRowCount%apply int *OUTPUT {SQLLEN *RowCount};// SQLSetConnectAttr, SQLSetEnvAttr, SQLSetStmtAttr%typemap(in, numinputs=1) (SQLPOINTER Value, SQLINTEGER StringLength) (SQLUINTEGER u, SQLHANDLE h) { u = (SQLUINTEGER) PyInt_AsUnsignedLongMask($input); if (!PyErr_Occurred()) { $1 = ($1_type) (size_t) u; $2 = 0; } else { PyErr_Clear(); $1 = ($1_type) PyString_AsString($input); if (!PyErr_Occurred()) { $2 = ($2_type) PyString_Size($input); } else { PyErr_Clear(); if (SWIG_ConvertPtr($input, &h, $descriptor(SQLHANDLE *), 0) == 0) { $1 = ($1_type) &h; $2 = 0; } else { PyErr_SetString(ErrorObject, "bad value type"); SWIG_fail; } } }}// SQLSetConnectAttrW, SQLSetEnvAttrW, SQLSetStmtAttrW%typemap(in, numinputs=1) (SQLPOINTER rgbValue, SQLINTEGER cbValue) { if (PyUnicode_Check($input)) { int i; $1 = ($1_type) SqlWChar_FromPyUnicode($input, &i); $2 = ($2_type) i * sizeof(SQLWCHAR); } else { SQLUINTEGER u; u = (SQLUINTEGER) PyInt_AsUnsignedLongMask($input); if (!PyErr_Occurred()) { $1 = ($1_type) (size_t) u; $2 = 0; } else { SQLHANDLE h; PyErr_Clear(); if (SWIG_ConvertPtr($input, &h, $descriptor(SQLHANDLE *), 0) == 0) { $1 = ($1_type) &h; $2 = 0; } else { PyErr_SetString(ErrorObject, "bad value type"); SWIG_fail; } } }}%typemap(argout) (SQLPOINTER rgbValue, SQLINTEGER cbValue) { if ($2 > 0) PyMem_Free($1); /* > 0 implies unicode, i.e. malloced */}// SQLSetConnectOption, SQLSetStmtOption%typemap(in, numinputs=1) (SQLULEN Value) { if (PyString_Check($input)) { $1 = ($1_type) (size_t) PyString_AsString($input); } else { SQLUINTEGER u; u = (SQLUINTEGER) PyInt_AsUnsignedLongMask($input); if (!PyErr_Occurred()) { $1 = ($1_type) u; } else { PyErr_Clear(); PyErr_SetString(ErrorObject, "bad value type"); SWIG_fail; } }}// SQLSetConnectOptionW, SQLSetStmtOptionW%ignore SQLSetConnectOptionA;%ignore SQLSetStmtOptionA;%typemap(in, numinputs=1) (SQLULEN vParam) (SQLUINTEGER u) { if (PyUnicode_Check($input)) { $1 = ($1_type) (size_t) SqlWChar_FromPyUnicode($input, NULL); } else { u = (SQLUINTEGER) PyInt_AsUnsignedLongMask($input);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -