⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 odbc.py.i

📁 这个是内存数据库的客户端
💻 I
📖 第 1 页 / 共 5 页
字号:
		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 + -