/Modules/_sqlite/cursor.h

http://unladen-swallow.googlecode.com/ · C Header · 71 lines · 39 code · 9 blank · 23 comment · 0 complexity · 6d574e121abdc987e68227d9e720cca0 MD5 · raw file

  1. /* cursor.h - definitions for the cursor type
  2. *
  3. * Copyright (C) 2004-2007 Gerhard Häring <gh@ghaering.de>
  4. *
  5. * This file is part of pysqlite.
  6. *
  7. * This software is provided 'as-is', without any express or implied
  8. * warranty. In no event will the authors be held liable for any damages
  9. * arising from the use of this software.
  10. *
  11. * Permission is granted to anyone to use this software for any purpose,
  12. * including commercial applications, and to alter it and redistribute it
  13. * freely, subject to the following restrictions:
  14. *
  15. * 1. The origin of this software must not be misrepresented; you must not
  16. * claim that you wrote the original software. If you use this software
  17. * in a product, an acknowledgment in the product documentation would be
  18. * appreciated but is not required.
  19. * 2. Altered source versions must be plainly marked as such, and must not be
  20. * misrepresented as being the original software.
  21. * 3. This notice may not be removed or altered from any source distribution.
  22. */
  23. #ifndef PYSQLITE_CURSOR_H
  24. #define PYSQLITE_CURSOR_H
  25. #include "Python.h"
  26. #include "statement.h"
  27. #include "connection.h"
  28. #include "module.h"
  29. typedef struct
  30. {
  31. PyObject_HEAD
  32. pysqlite_Connection* connection;
  33. PyObject* description;
  34. PyObject* row_cast_map;
  35. int arraysize;
  36. PyObject* lastrowid;
  37. long rowcount;
  38. PyObject* row_factory;
  39. pysqlite_Statement* statement;
  40. /* the next row to be returned, NULL if no next row available */
  41. PyObject* next_row;
  42. } pysqlite_Cursor;
  43. typedef enum {
  44. STATEMENT_INVALID, STATEMENT_INSERT, STATEMENT_DELETE,
  45. STATEMENT_UPDATE, STATEMENT_REPLACE, STATEMENT_SELECT,
  46. STATEMENT_OTHER
  47. } pysqlite_StatementKind;
  48. extern PyTypeObject pysqlite_CursorType;
  49. int pysqlite_cursor_init(pysqlite_Cursor* self, PyObject* args, PyObject* kwargs);
  50. void pysqlite_cursor_dealloc(pysqlite_Cursor* self);
  51. PyObject* pysqlite_cursor_execute(pysqlite_Cursor* self, PyObject* args);
  52. PyObject* pysqlite_cursor_executemany(pysqlite_Cursor* self, PyObject* args);
  53. PyObject* pysqlite_cursor_getiter(pysqlite_Cursor *self);
  54. PyObject* pysqlite_cursor_iternext(pysqlite_Cursor *self);
  55. PyObject* pysqlite_cursor_fetchone(pysqlite_Cursor* self, PyObject* args);
  56. PyObject* pysqlite_cursor_fetchmany(pysqlite_Cursor* self, PyObject* args, PyObject* kwargs);
  57. PyObject* pysqlite_cursor_fetchall(pysqlite_Cursor* self, PyObject* args);
  58. PyObject* pysqlite_noop(pysqlite_Connection* self, PyObject* args);
  59. PyObject* pysqlite_cursor_close(pysqlite_Cursor* self, PyObject* args);
  60. int pysqlite_cursor_setup_types(void);
  61. #define UNKNOWN (-1)
  62. #endif