📄 odbc.py.i
字号:
o = Py_BuildValue("(ii(ii))", ((SQL_INTERVAL_STRUCT *) $2)->interval_type, ((SQL_INTERVAL_STRUCT *) $2)->interval_sign, ((SQL_INTERVAL_STRUCT *) $2)->intval.year_month.year, ((SQL_INTERVAL_STRUCT *) $2)->intval.year_month.month); break; case SQL_C_INTERVAL_DAY: case SQL_C_INTERVAL_HOUR: case SQL_C_INTERVAL_MINUTE: case SQL_C_INTERVAL_SECOND: case SQL_C_INTERVAL_DAY_TO_HOUR: case SQL_C_INTERVAL_DAY_TO_MINUTE: case SQL_C_INTERVAL_DAY_TO_SECOND: case SQL_C_INTERVAL_HOUR_TO_MINUTE: case SQL_C_INTERVAL_HOUR_TO_SECOND: case SQL_C_INTERVAL_MINUTE_TO_SECOND: o = Py_BuildValue("(ii(iiiii))", ((SQL_INTERVAL_STRUCT *) $2)->interval_type, ((SQL_INTERVAL_STRUCT *) $2)->interval_sign, ((SQL_INTERVAL_STRUCT *) $2)->intval.day_second.day, ((SQL_INTERVAL_STRUCT *) $2)->intval.day_second.hour, ((SQL_INTERVAL_STRUCT *) $2)->intval.day_second.minute, ((SQL_INTERVAL_STRUCT *) $2)->intval.day_second.second, ((SQL_INTERVAL_STRUCT *) $2)->intval.day_second.fraction); break; default: o = Py_None; Py_INCREF(Py_None); break; } $result = t_output_helper($result, o);}// SQLGetDescField%typemap(in, numinputs=1) (SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) (char tempbuf[BUFLEN], $*4_type len) { $1 = ($1_type) PyInt_AsLong($input); if (PyErr_Occurred()) SWIG_fail; $2 = tempbuf; $3 = len = sizeof(tempbuf); $4 = &len;};%typemap(argout,fragment="t_output_helper") (SQLSMALLINT FieldIdentifier, SQLPOINTER Value, SQLINTEGER BufferLength, SQLINTEGER *StringLength) { PyObject *o; switch ($1) { case SQL_DESC_ALLOC_TYPE: case SQL_DESC_COUNT: case SQL_DESC_CONCISE_TYPE: case SQL_DESC_DATETIME_INTERVAL_CODE: case SQL_DESC_FIXED_PREC_SCALE: case SQL_DESC_NULLABLE: case SQL_DESC_PRECISION: case SQL_DESC_ROWVER: case SQL_DESC_SCALE: case SQL_DESC_SEARCHABLE: case SQL_DESC_TYPE: case SQL_DESC_UNNAMED: case SQL_DESC_UNSIGNED: case SQL_DESC_UPDATABLE: /* SQLSMALLINT */ o = PyInt_FromLong((long) * (SQLSMALLINT *) $2); break; case SQL_DESC_ARRAY_SIZE: case SQL_DESC_BIND_TYPE: case SQL_DESC_LENGTH: /* SQLUINTEGER */ o = PyInt_FromLong((long) * (SQLUINTEGER *) $2); break; case SQL_DESC_AUTO_UNIQUE_VALUE: case SQL_DESC_CASE_SENSITIVE: case SQL_DESC_DATETIME_INTERVAL_PRECISION: case SQL_DESC_DISPLAY_SIZE: case SQL_DESC_NUM_PREC_RADIX: case SQL_DESC_OCTET_LENGTH: case SQL_DESC_PARAMETER_TYPE: /* SQLINTEGER */ o = PyInt_FromLong((long) * (SQLINTEGER *) $2); break; case SQL_DESC_BASE_COLUMN_NAME: case SQL_DESC_BASE_TABLE_NAME: case SQL_DESC_CATALOG_NAME: case SQL_DESC_LABEL: case SQL_DESC_LITERAL_PREFIX: case SQL_DESC_LITERAL_SUFFIX: case SQL_DESC_LOCAL_TYPE_NAME: case SQL_DESC_NAME: case SQL_DESC_SCHEMA_NAME: case SQL_DESC_TABLE_NAME: case SQL_DESC_TYPE_NAME: /* string */ o = PyString_FromStringAndSize((char *) $2, *$4 >= $3 ? $3 - 1 : *$4); break; case SQL_DESC_ARRAY_STATUS_PTR: case SQL_DESC_BIND_OFFSET_PTR: case SQL_DESC_ROWS_PROCESSED_PTR: case SQL_DESC_DATA_PTR: case SQL_DESC_INDICATOR_PTR: case SQL_DESC_OCTET_LENGTH_PTR: /* pointer */ o = Py_None; Py_INCREF(Py_None); break; } $result = t_output_helper($result, o);}// SQLGetDescFieldW%ignore SQLGetDescFieldA;%typemap(in, numinputs=1) (SQLSMALLINT iField, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER *pcbValue) (char tempbuf[BUFLEN], $*4_type len) { $1 = ($1_type) PyInt_AsLong($input); if (PyErr_Occurred()) SWIG_fail; $2 = tempbuf; $3 = len = sizeof(tempbuf); $4 = &len;};%typemap(argout,fragment="t_output_helper") (SQLSMALLINT iField, SQLPOINTER rgbValue, SQLINTEGER cbValueMax, SQLINTEGER *pcbValue) { PyObject *o; switch ($1) { case SQL_DESC_ALLOC_TYPE: case SQL_DESC_COUNT: case SQL_DESC_CONCISE_TYPE: case SQL_DESC_DATETIME_INTERVAL_CODE: case SQL_DESC_FIXED_PREC_SCALE: case SQL_DESC_NULLABLE: case SQL_DESC_PRECISION: case SQL_DESC_ROWVER: case SQL_DESC_SCALE: case SQL_DESC_SEARCHABLE: case SQL_DESC_TYPE: case SQL_DESC_UNNAMED: case SQL_DESC_UNSIGNED: case SQL_DESC_UPDATABLE: /* SQLSMALLINT */ o = PyInt_FromLong((long) * (SQLSMALLINT *) $2); break; case SQL_DESC_ARRAY_SIZE: case SQL_DESC_BIND_TYPE: case SQL_DESC_LENGTH: /* SQLUINTEGER */ o = PyInt_FromLong((long) * (SQLUINTEGER *) $2); break; case SQL_DESC_AUTO_UNIQUE_VALUE: case SQL_DESC_CASE_SENSITIVE: case SQL_DESC_DATETIME_INTERVAL_PRECISION: case SQL_DESC_DISPLAY_SIZE: case SQL_DESC_NUM_PREC_RADIX: case SQL_DESC_OCTET_LENGTH: case SQL_DESC_PARAMETER_TYPE: /* SQLINTEGER */ o = PyInt_FromLong((long) * (SQLINTEGER *) $2); break; case SQL_DESC_BASE_COLUMN_NAME: case SQL_DESC_BASE_TABLE_NAME: case SQL_DESC_CATALOG_NAME: case SQL_DESC_LABEL: case SQL_DESC_LITERAL_PREFIX: case SQL_DESC_LITERAL_SUFFIX: case SQL_DESC_LOCAL_TYPE_NAME: case SQL_DESC_NAME: case SQL_DESC_SCHEMA_NAME: case SQL_DESC_TABLE_NAME: case SQL_DESC_TYPE_NAME: /* string */ o = PyUnicode_FromSqlWChar((SQLWCHAR *) $2, (*$4 >= $3 ? (SQLINTEGER) ($3 - sizeof(SQLWCHAR)) : *$4) / sizeof(SQLWCHAR)); break; case SQL_DESC_ARRAY_STATUS_PTR: case SQL_DESC_BIND_OFFSET_PTR: case SQL_DESC_ROWS_PROCESSED_PTR: case SQL_DESC_DATA_PTR: case SQL_DESC_INDICATOR_PTR: case SQL_DESC_OCTET_LENGTH_PTR: /* pointer */ o = Py_None; Py_INCREF(Py_None); break; } $result = t_output_helper($result, o);}// SQLGetDescRec%apply (char *OUTBUF, int BUFSIZE, int *OUTSIZE) {(SQLCHAR *Name, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength)};%apply int *OUTPUT { SQLSMALLINT *Type };%apply int *OUTPUT { SQLSMALLINT *SubType };%apply int *OUTPUT { SQLLEN *Length };%apply int *OUTPUT { SQLSMALLINT *Precision };%apply int *OUTPUT { SQLSMALLINT *Scale };%apply int *OUTPUT { SQLSMALLINT *Nullable };// SQLGetDescRecA, SQLGetDescRecW%apply (char *OUTBUF, int BUFSIZE, int *OUTSIZE) {(SQLCHAR *szName, SQLSMALLINT cbNameMax, SQLSMALLINT *pcbName)};%apply (SQLWCHAR *OUTBUF, int BUFSIZE, int *OUTSIZE) {(SQLWCHAR *szName, SQLSMALLINT cbNameMax, SQLSMALLINT *pcbName)};%apply int *OUTPUT { SQLSMALLINT *pfType };%apply int *OUTPUT { SQLSMALLINT *pfSubType };%apply int *OUTPUT { SQLLEN *pLength };%apply int *OUTPUT { SQLSMALLINT *pPrecision };%apply int *OUTPUT { SQLSMALLINT *pScale };%apply int *OUTPUT { SQLSMALLINT *pNullable };// SQLGetDiagField%typemap(in, numinputs=1) (SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) (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") (SQLSMALLINT DiagIdentifier, SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) { PyObject *o; switch ($1) { case SQL_DIAG_DYNAMIC_FUNCTION: case SQL_DIAG_CLASS_ORIGIN: case SQL_DIAG_CONNECTION_NAME: case SQL_DIAG_MESSAGE_TEXT: case SQL_DIAG_SERVER_NAME: case SQL_DIAG_SQLSTATE: case SQL_DIAG_SUBCLASS_ORIGIN: /* string */ o = PyString_FromStringAndSize((char *) $2, *$4 >= $3 ? $3 - 1 : *$4); break; case SQL_DIAG_CURSOR_ROW_COUNT: case SQL_DIAG_DYNAMIC_FUNCTION_CODE: case SQL_DIAG_NUMBER: case SQL_DIAG_ROW_COUNT: case SQL_DIAG_COLUMN_NUMBER: case SQL_DIAG_NATIVE: case SQL_DIAG_ROW_NUMBER: /* SQLINTEGER */ o = PyInt_FromLong((long) * (SQLINTEGER *) $2); break; case SQL_DIAG_RETURNCODE: /* SQLRETURN */ o = PyInt_FromLong((long) * (SQLRETURN *) $2); break; default: PyErr_SetString(ErrorObject, "bad info type"); SWIG_fail; } $result = t_output_helper($result, o);}// SQLGetDiagFieldW%ignore SQLGetDiagFieldA;%typemap(in, numinputs=1) (SQLSMALLINT fDiagField, SQLPOINTER rgbDiagInfo, SQLSMALLINT cbDiagInfoMax, SQLSMALLINT *pcbDiagInfo) (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") (SQLSMALLINT fDiagField, SQLPOINTER rgbDiagInfo, SQLSMALLINT cbDiagInfoMax, SQLSMALLINT *pcbDiagInfo) { PyObject *o; switch ($1) { case SQL_DIAG_DYNAMIC_FUNCTION: case SQL_DIAG_CLASS_ORIGIN: case SQL_DIAG_CONNECTION_NAME: case SQL_DIAG_MESSAGE_TEXT: case SQL_DIAG_SERVER_NAME: case SQL_DIAG_SQLSTATE: case SQL_DIAG_SUBCLASS_ORIGIN: /* string */ o = PyUnicode_FromSqlWChar((SQLWCHAR *) $2, (*$4 >= $3 ? (SQLSMALLINT) ($3 - sizeof(SQLWCHAR)) : *$4) / sizeof(SQLWCHAR)); break; case SQL_DIAG_CURSOR_ROW_COUNT: case SQL_DIAG_DYNAMIC_FUNCTION_CODE: case SQL_DIAG_NUMBER: case SQL_DIAG_ROW_COUNT: case SQL_DIAG_COLUMN_NUMBER: case SQL_DIAG_NATIVE: case SQL_DIAG_ROW_NUMBER: /* SQLINTEGER */ o = PyInt_FromLong((long) * (SQLINTEGER *) $2); break; case SQL_DIAG_RETURNCODE: /* SQLRETURN */ o = PyInt_FromLong((long) * (SQLRETURN *) $2); break; default: PyErr_SetString(ErrorObject, "bad info type"); SWIG_fail; } $result = t_output_helper($result, o);}// SQLGetFunctions%apply int *OUTPUT {SQLUSMALLINT *Supported};%typemap(in, numinputs=1) (SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported) (SQLUSMALLINT tempbuf[SQL_API_ODBC3_ALL_FUNCTIONS_SIZE]) { $1 = ($1_ltype) PyInt_AsLong($input); if (PyErr_Occurred()) SWIG_fail; $2 = tempbuf;}%typemap(argout,fragment="t_output_helper") (SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported) { PyObject *o; int i; switch ($1) { case SQL_API_ODBC3_ALL_FUNCTIONS: o = PyList_New(SQL_API_ODBC3_ALL_FUNCTIONS_SIZE); for (i = 0; i < SQL_API_ODBC3_ALL_FUNCTIONS_SIZE; i++) PyList_SetItem(o, i, PyInt_FromLong((long) $2[i])); break; case SQL_API_ALL_FUNCTIONS: o = PyList_New(100); for (i = 0; i < 100; i++) PyList_SetItem(o, i, PyInt_FromLong((long) $2[i])); break; default: o = PyInt_FromLong((long) *$2); break; } if (PyErr_Occurred()) { Py_XDECREF(o); SWIG_fail; } $result = t_output_helper($result, o);}// SQLGetInfo// InfoTypes SQL_DRIVER_HDESC and SQL_DRIVER_HSTMS use *InfoValue as// input/output value. This has not (yet) been implemented by this// code.%typemap(in, numinputs=1) (SQLUSMALLINT InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) (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 InfoType, SQLPOINTER InfoValue, SQLSMALLINT BufferLength, SQLSMALLINT *StringLength) { 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 = PyString_FromStringAndSize((char *) $2, *$4 >= $3 ? $3 - 1 : *$4); 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: /* 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:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -