📄 _mysql.c
字号:
_mysql_ResultObject *self, PyObject *args){ unsigned int row; if (!PyArg_ParseTuple(args, "i:data_seek", &row)) return NULL; check_result_connection(self); mysql_data_seek(self->result, row); Py_INCREF(Py_None); return Py_None;}static char _mysql_ResultObject_row_seek__doc__[] ="row_seek(n) -- seek by offset n rows of result set";static PyObject *_mysql_ResultObject_row_seek( _mysql_ResultObject *self, PyObject *args){ int offset; MYSQL_ROW_OFFSET r; if (!PyArg_ParseTuple(args, "i:row_seek", &offset)) return NULL; check_result_connection(self); if (self->use) { PyErr_SetString(_mysql_ProgrammingError, "cannot be used with connection.use_result()"); return NULL; } r = mysql_row_tell(self->result); mysql_row_seek(self->result, r+offset); Py_INCREF(Py_None); return Py_None;}static char _mysql_ResultObject_row_tell__doc__[] ="row_tell() -- return the current row number of the result set.";static PyObject *_mysql_ResultObject_row_tell( _mysql_ResultObject *self, PyObject *args){ MYSQL_ROW_OFFSET r; if (!PyArg_ParseTuple(args, "")) return NULL; check_result_connection(self); if (self->use) { PyErr_SetString(_mysql_ProgrammingError, "cannot be used with connection.use_result()"); return NULL; } r = mysql_row_tell(self->result); return PyInt_FromLong(r-self->result->data->data);}static void_mysql_ResultObject_dealloc( _mysql_ResultObject *self){ PyObject_GC_UnTrack((PyObject *)self); mysql_free_result(self->result); _mysql_ResultObject_clear(self); MyFree(self);}static PyObject *_mysql_ResultObject_repr( _mysql_ResultObject *self){ char buf[300]; sprintf(buf, "<_mysql.result object at %lx>", (long)self); return PyString_FromString(buf);}static PyMethodDef _mysql_ConnectionObject_methods[] = { { "affected_rows", (PyCFunction)_mysql_ConnectionObject_affected_rows, METH_VARARGS, _mysql_ConnectionObject_affected_rows__doc__ }, { "autocommit", (PyCFunction)_mysql_ConnectionObject_autocommit, METH_VARARGS, _mysql_ConnectionObject_autocommit__doc__ }, { "commit", (PyCFunction)_mysql_ConnectionObject_commit, METH_VARARGS, _mysql_ConnectionObject_commit__doc__ }, { "rollback", (PyCFunction)_mysql_ConnectionObject_rollback, METH_VARARGS, _mysql_ConnectionObject_rollback__doc__ }, { "next_result", (PyCFunction)_mysql_ConnectionObject_next_result, METH_VARARGS, _mysql_ConnectionObject_next_result__doc__ },#if MYSQL_VERSION_ID >= 40100 { "set_server_option", (PyCFunction)_mysql_ConnectionObject_set_server_option, METH_VARARGS, _mysql_ConnectionObject_set_server_option__doc__ }, { "sqlstate", (PyCFunction)_mysql_ConnectionObject_sqlstate, METH_VARARGS, _mysql_ConnectionObject_sqlstate__doc__ }, { "warning_count", (PyCFunction)_mysql_ConnectionObject_warning_count, METH_VARARGS, _mysql_ConnectionObject_warning_count__doc__ },#endif#if MYSQL_VERSION_ID >= 32303 { "change_user", (PyCFunction)_mysql_ConnectionObject_change_user, METH_VARARGS | METH_KEYWORDS, _mysql_ConnectionObject_change_user__doc__ },#endif { "character_set_name", (PyCFunction)_mysql_ConnectionObject_character_set_name, METH_VARARGS, _mysql_ConnectionObject_character_set_name__doc__ },#if MYSQL_VERSION_ID >= 50007 { "set_character_set", (PyCFunction)_mysql_ConnectionObject_set_character_set, METH_VARARGS, _mysql_ConnectionObject_set_character_set__doc__ },#endif#if MYSQL_VERSION_ID >= 50010 { "get_character_set_info", (PyCFunction)_mysql_ConnectionObject_get_character_set_info, METH_VARARGS, _mysql_ConnectionObject_get_character_set_info__doc__ },#endif { "close", (PyCFunction)_mysql_ConnectionObject_close, METH_VARARGS, _mysql_ConnectionObject_close__doc__ }, { "dump_debug_info", (PyCFunction)_mysql_ConnectionObject_dump_debug_info, METH_VARARGS, _mysql_ConnectionObject_dump_debug_info__doc__ }, { "escape", (PyCFunction)_mysql_escape, METH_VARARGS, _mysql_escape__doc__ }, { "escape_string", (PyCFunction)_mysql_escape_string, METH_VARARGS, _mysql_escape_string__doc__ }, { "error", (PyCFunction)_mysql_ConnectionObject_error, METH_VARARGS, _mysql_ConnectionObject_error__doc__ }, { "errno", (PyCFunction)_mysql_ConnectionObject_errno, METH_VARARGS, _mysql_ConnectionObject_errno__doc__ }, { "field_count", (PyCFunction)_mysql_ConnectionObject_field_count, METH_VARARGS, _mysql_ConnectionObject_field_count__doc__ }, { "get_host_info", (PyCFunction)_mysql_ConnectionObject_get_host_info, METH_VARARGS, _mysql_ConnectionObject_get_host_info__doc__ }, { "get_proto_info", (PyCFunction)_mysql_ConnectionObject_get_proto_info, METH_VARARGS, _mysql_ConnectionObject_get_proto_info__doc__ }, { "get_server_info", (PyCFunction)_mysql_ConnectionObject_get_server_info, METH_VARARGS, _mysql_ConnectionObject_get_server_info__doc__ }, { "info", (PyCFunction)_mysql_ConnectionObject_info, METH_VARARGS, _mysql_ConnectionObject_info__doc__ }, { "insert_id", (PyCFunction)_mysql_ConnectionObject_insert_id, METH_VARARGS, _mysql_ConnectionObject_insert_id__doc__ }, { "kill", (PyCFunction)_mysql_ConnectionObject_kill, METH_VARARGS, _mysql_ConnectionObject_kill__doc__ }, { "ping", (PyCFunction)_mysql_ConnectionObject_ping, METH_VARARGS, _mysql_ConnectionObject_ping__doc__ }, { "query", (PyCFunction)_mysql_ConnectionObject_query, METH_VARARGS, _mysql_ConnectionObject_query__doc__ }, { "select_db", (PyCFunction)_mysql_ConnectionObject_select_db, METH_VARARGS, _mysql_ConnectionObject_select_db__doc__ }, { "shutdown", (PyCFunction)_mysql_ConnectionObject_shutdown, METH_VARARGS, _mysql_ConnectionObject_shutdown__doc__ }, { "stat", (PyCFunction)_mysql_ConnectionObject_stat, METH_VARARGS, _mysql_ConnectionObject_stat__doc__ }, { "store_result", (PyCFunction)_mysql_ConnectionObject_store_result, METH_VARARGS, _mysql_ConnectionObject_store_result__doc__ }, { "string_literal", (PyCFunction)_mysql_string_literal, METH_VARARGS, _mysql_string_literal__doc__}, { "thread_id", (PyCFunction)_mysql_ConnectionObject_thread_id, METH_VARARGS, _mysql_ConnectionObject_thread_id__doc__ }, { "use_result", (PyCFunction)_mysql_ConnectionObject_use_result, METH_VARARGS, _mysql_ConnectionObject_use_result__doc__ }, {NULL, NULL} /* sentinel */};static MyMemberlist(_mysql_ConnectionObject_memberlist)[] = { MyMember( "open", T_INT, offsetof(_mysql_ConnectionObject,open), RO, "True if connection is open" ), MyMember( "converter", T_OBJECT, offsetof(_mysql_ConnectionObject,converter), 0, "Type conversion mapping" ), MyMember( "server_capabilities", T_UINT, offsetof(_mysql_ConnectionObject,connection.server_capabilities), RO, "Capabilites of server; consult MySQLdb.constants.CLIENT" ), MyMember( "port", T_UINT, offsetof(_mysql_ConnectionObject,connection.port), RO, "TCP/IP port of the server connection" ), MyMember( "client_flag", T_UINT, RO, offsetof(_mysql_ConnectionObject,connection.client_flag), "Client flags; refer to MySQLdb.constants.CLIENT" ), {NULL} /* Sentinel */};static PyMethodDef _mysql_ResultObject_methods[] = { { "data_seek", (PyCFunction)_mysql_ResultObject_data_seek, METH_VARARGS, _mysql_ResultObject_data_seek__doc__ }, { "row_seek", (PyCFunction)_mysql_ResultObject_row_seek, METH_VARARGS, _mysql_ResultObject_row_seek__doc__ }, { "row_tell", (PyCFunction)_mysql_ResultObject_row_tell, METH_VARARGS, _mysql_ResultObject_row_tell__doc__ }, { "describe", (PyCFunction)_mysql_ResultObject_describe, METH_VARARGS, _mysql_ResultObject_describe__doc__ }, { "fetch_row", (PyCFunction)_mysql_ResultObject_fetch_row, METH_VARARGS | METH_KEYWORDS, _mysql_ResultObject_fetch_row__doc__ }, { "field_flags", (PyCFunction)_mysql_ResultObject_field_flags, METH_VARARGS, _mysql_ResultObject_field_flags__doc__ }, { "num_fields", (PyCFunction)_mysql_ResultObject_num_fields, METH_VARARGS, _mysql_ResultObject_num_fields__doc__ }, { "num_rows", (PyCFunction)_mysql_ResultObject_num_rows, METH_VARARGS, _mysql_ResultObject_num_rows__doc__ }, {NULL, NULL} /* sentinel */};static MyMemberlist(_mysql_ResultObject_memberlist)[] = { MyMember( "converter", T_OBJECT, offsetof(_mysql_ResultObject,converter), RO, "Type conversion mapping" ), {NULL} /* Sentinel */}; static PyObject *_mysql_ConnectionObject_getattr( _mysql_ConnectionObject *self, char *name){ PyObject *res; res = Py_FindMethod(_mysql_ConnectionObject_methods, (PyObject *)self, name); if (res != NULL) return res; PyErr_Clear(); if (strcmp(name, "closed") == 0) return PyInt_FromLong((long)!(self->open));#if PY_VERSION_HEX < 0x02020000 return PyMember_Get((char *)self, _mysql_ConnectionObject_memberlist, name);#else { MyMemberlist(*l); for (l = _mysql_ConnectionObject_memberlist; l->name != NULL; l++) { if (strcmp(l->name, name) == 0) return PyMember_GetOne((char *)self, l); } PyErr_SetString(PyExc_AttributeError, name); return NULL; }#endif}static PyObject *_mysql_ResultObject_getattr( _mysql_ResultObject *self, char *name){ PyObject *res; res = Py_FindMethod(_mysql_ResultObject_methods, (PyObject *)self, name); if (res != NULL) return res; PyErr_Clear();#if PY_VERSION_HEX < 0x02020000 return PyMember_Get((char *)self, _mysql_ResultObject_memberlist, name);#else { MyMemberlist(*l); for (l = _mysql_ResultObject_memberlist; l->name != NULL; l++) { if (strcmp(l->name, name) == 0) return PyMember_GetOne((char *)self, l); } PyErr_SetString(PyExc_AttributeError, name); return NULL; }#endif}static int_mysql_ConnectionObject_setattr( _mysql_ConnectionObject *self, char *name, PyObject *v){ if (v == NULL) { PyErr_SetString(PyExc_AttributeError, "can't delete connection attributes"); return -1; }#if PY_VERSION_HEX < 0x02020000 return PyMember_Set((char *)self, _mysql_ConnectionObject_memberlist, name, v);#else { MyMemberlist(*l); for (l = _mysql_ConnectionObject_memberlist; l->name != NULL; l++) if (strcmp(l->name, name) == 0) return PyMember_SetOne((char *)self, l, v); } PyErr_SetString(PyExc_AttributeError, name); return -1;#endif}static int_mysql_ResultObject_setattr( _mysql_ResultObject *self, char *name, PyObject *v){ if (v == NULL) { PyErr_SetString(PyExc_AttributeError, "can't delete connection attributes"); return -1; }#if PY_VERSION_HEX < 0x02020000 return PyMember_Set((char *)self, _mysql_ResultObject_memberlist, name, v);#else { MyMemberlist(*l); for (l = _mysql_ResultObject_memberlist; l->name != NULL; l++) if (strcmp(l->name, name) == 0) return PyMember_SetOne((char *)self, l, v); } PyErr_SetString(PyExc_AttributeError, name); return -1;#endif}PyTypeObject _mysql_ConnectionObject_Type = { PyObject_HEAD_INIT(NULL) 0, "_mysql.connection", /* (char *)tp_name For printing */ sizeof(_mysql_ConnectionObject), 0, (destructor)_mysql_ConnectionObject_dealloc, /* tp_dealloc */ 0, /*tp_print*/ (getattrfunc)_mysql_ConnectionObject_getattr, /* tp_getattr */ (setattrfunc)_mysql_ConnectionObject_setattr, /* tp_setattr */ 0, /*tp_compare*/ (reprfunc)_mysql_ConnectionObject_repr, /* tp_repr */ /* Method suites for standard classes */ 0, /* (PyNumberMethods *) tp_as_number */ 0, /* (PySequenceMethods
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -