📄 odbc.py.i
字号:
if (!PyErr_Occurred()) { $1 = ($1_type) u; } else { PyErr_Clear(); PyErr_SetString(ErrorObject, "bad value type"); SWIG_fail; } }}// SQLSetDescField, SQLSetDescFieldA, SQLSetDescFieldW%typemap(in, numinputs=1) (SQLPOINTER Value, SQLINTEGER BufferLength) { if (PyUnicode_Check($input)) { int i; $1 = ($1_type) SqlWChar_FromPyUnicode($input, &i); $2 = ($2_type) i; } else { if (PyString_Check($input)) { $1 = ($1_type) PyString_AsString($input); $2 = PyString_Size($input); } else { SQLUINTEGER u; u = (SQLUINTEGER) PyInt_AsUnsignedLongMask($input); if (!PyErr_Occurred()) { $1 = ($1_type) (size_t) u; $2 = 0; } else { PyErr_Clear(); PyErr_SetString(ErrorObject, "bad value type"); SWIG_fail; } } }}// SQLSetDescRec%typemap(in, numinputs=0) (SQLPOINTER Data) { $1 = NULL;}%typemap(in, numinputs=0) (SQLLEN *StringLength) { $1 = NULL;}%apply SQLLEN *StringLength {SQLLEN *Indicator};// SQLSetCursorName%apply (char *STRING, int LENGTH) {(SQLCHAR *CursorName, SQLSMALLINT NameLength)};// SQLSetCursorNameA%apply (char *STRING, int LENGTH) {(SQLCHAR *szCursor, SQLSMALLINT cbCursor)};// SQLSetCursorNameW%apply (SQLWCHAR *STRING, int LENGTH) {(SQLWCHAR *szCursor, SQLSMALLINT cbCursor)};%ignore SQLBindCol; /* can't be implemented in Python */%ignore SQLBindParam; /* not part of ODBC */%ignore SQLBindParameter;%ignore SQLSetParam;/* Generate exception for failed call*/// It would be nice if we could also not return the result value%{#define CheckResult(res,tpe,hnd) \ if (res == SQL_ERROR) { \ SQLCHAR msg[256], state[6]; \ SQLSMALLINT len; \ PyObject *errobj; \ SQLGetDiagRec(tpe, hnd, 1, state, NULL, msg, 256, &len); \ errobj = Py_BuildValue("ss", (char *) msg, (char *) state); \ PyErr_SetObject(ErrorObject, errobj); \ Py_XDECREF(errobj); \ return NULL; \ } \ if (res == SQL_INVALID_HANDLE) { \ PyErr_SetString(ErrorObject, "Invalid handle"); \ return NULL; \ }%}%exception SQLAllocHandle { $action if (result == SQL_INVALID_HANDLE) { PyErr_SetString(ErrorObject, "Invalid handle"); return NULL; } if (result == SQL_ERROR) { SQLCHAR msg[256], state[6]; SQLSMALLINT len; PyObject *errobj; SQLGetDiagRec(arg1==SQL_HANDLE_DBC?SQL_HANDLE_ENV:SQL_HANDLE_DBC, arg2, 1, state, NULL, msg, 256, &len); errobj = Py_BuildValue("ss", (char *) msg, (char *) state); PyErr_SetObject(ErrorObject, errobj); Py_XDECREF(errobj); return NULL; }}%exception SQLAllocEnv { $action if (result == SQL_ERROR || result == SQL_INVALID_HANDLE) { PyErr_SetString(ErrorObject, "Invalid handle"); return NULL; }}%exception SQLAllocConnect { $action CheckResult(result, SQL_HANDLE_ENV, arg1)}%exception SQLAllocStmt { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLBrowseConnect { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLBulkOperations { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLCancel { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLCloseCursor { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLColAttribute { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLColumnPrivileges { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLColumns { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLConnect { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLCopyDesc { $action CheckResult(result, SQL_HANDLE_DESC, arg1)}%exception SQLDataSources { $action CheckResult(result, SQL_HANDLE_ENV, arg1) if (result == SQL_NO_DATA) { Py_INCREF(Py_None); return Py_None; }}%exception SQLDescribeCol { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLDescribeParam { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLDisconnect { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLDriverConnect { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLDrivers { $action CheckResult(result, SQL_HANDLE_ENV, arg1)}%exception SQLEndTran { $action CheckResult(result, arg1, arg2)}%exception SQLExecDirect { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLExecute { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLExtendedFetch { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLFetch { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLFetchScroll { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLForeignKeys { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLFreeConnect { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLFreeEnv { $action CheckResult(result, SQL_HANDLE_ENV, arg1)}%exception SQLFreeHandle { $action CheckResult(result, arg1, arg2)}%exception SQLFreeStmt { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLGetConnectAttr { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLGetConnectOption { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLGetCursorName { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLGetData { $action CheckResult(result, SQL_HANDLE_STMT, arg1) if (result == SQL_NO_DATA) { Py_INCREF(Py_None); return Py_None; }}%exception SQLGetDescField { $action CheckResult(result, SQL_HANDLE_DESC, arg1)}%exception SQLGetDescRec { $action CheckResult(result, SQL_HANDLE_DESC, arg1)}%exception SQLGetEnvAttr { $action CheckResult(result, SQL_HANDLE_ENV, arg1)}%exception SQLGetFunctions { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLGetInfo { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLGetStmtAttr { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLGetStmtOption { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLGetTypeInfo { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLMoreResults { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLNativeSql { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLNumParams { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLNumResultCols { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLParamData { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLParamOptions { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLPrepare { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLPrimaryKeys { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLProcedureColumns { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLProcedures { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLPutData { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLRowCount { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLSetConnectAttr { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLSetConnectOption { $action CheckResult(result, SQL_HANDLE_DBC, arg1)}%exception SQLSetCursorName { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLSetDescField { $action CheckResult(result, SQL_HANDLE_DESC, arg1)}%exception SQLSetDescRec { $action CheckResult(result, SQL_HANDLE_DESC, arg1)}%exception SQLSetEnvAttr { $action CheckResult(result, SQL_HANDLE_ENV, arg1)}%exception SQLSetPos { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLSetScrollOptions { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLSetStmtAttr { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLSetStmtOption { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLSpecialColumns { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLStatistics { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLTablePrivileges { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLTables { $action CheckResult(result, SQL_HANDLE_STMT, arg1)}%exception SQLTransact { $action if (arg1 == Py_None) { CheckResult(result, SQL_HANDLE_ENV, arg2) } else { CheckResult(result, SQL_HANDLE_DBC, arg1) }}%ignore __SQL_H;%include "sql.h"%ignore __SQLEXT_H;%ignore SQLAllocHandleStd;%ignore FireVSDebugEvent;%ignore ODBC_VS_FLAG_RETCODE;%ignore ODBC_VS_FLAG_STOP;%ignore ODBC_VS_FLAG_UNICODE_ARG;%ignore ODBC_VS_FLAG_UNICODE_COR;%ignore TraceCloseLogFile;%ignore TRACE_ON;%ignore TraceOpenLogFile;%ignore TraceReturn;%ignore TraceVersion;%ignore TRACE_VERSION;%ignore TraceVSControl;%ignore TRACE_VS_EVENT_ON;%include "sqlext.h"%ignore __SQLUCODE_H;%ignore SQLSetStmtOptionA;%ignore SQLGetStmtOptionA;%ignore SQLPrepareA;%ignore SQLDescribeParamA;%include "sqlucode.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -