pgcursordb.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * pgcursordb.h
  4.  *    
  5.  *
  6.  *   DESCRIPTION
  7.  * Postgres Cursor Database Class: 
  8.  *    Query Postgres backend using a cursor
  9.  *
  10.  *   NOTES
  11.  *      Currently under construction.
  12.  *
  13.  * Copyright (c) 1994, Regents of the University of California
  14.  *
  15.  *
  16.  *  $Id: pgcursordb.h,v 1.3 1999/06/01 02:37:33 momjian Exp $
  17.  *
  18.  *-------------------------------------------------------------------------
  19.  */
  20.  
  21. #ifndef PGCURSOR_H
  22. #define PGCURSOR_H
  23. #include "pgtransdb.h"
  24. // ****************************************************************
  25. //
  26. // PgCursor - a class for querying databases using a cursor
  27. //
  28. // ****************************************************************
  29. // This is the database access class that declares a cursor and
  30. // manipulates data through it.  The interface will introduce some
  31. // ease of use through the methods that will allow cursor specific
  32. // operations, like fetch, forward, etc.
  33. class PgCursor : public PgTransaction {
  34. public:
  35.   PgCursor(const char* conninfo, const char* cursor); // use reasonable & environment defaults
  36.   // connect to the database with given environment and database name
  37.   //  PgCursor(const PgConnection&, const char* cursor);
  38.   ~PgCursor(); // close connection and clean up
  39.   
  40.   // Commands associated with cursor interface
  41.   int Declare(const string& query, int binary = 0); // Declare a cursor with given name
  42.   int Fetch(const char* dir = "FORWARD"); // Fetch ALL tuples in given direction
  43.   int Fetch(unsigned num, const char* dir = "FORWARD"); // Fetch specified amount of tuples
  44.   int Close(); // Close the cursor
  45.   
  46.   // Accessors to the cursor name
  47.   const char* Cursor() const { return pgCursor.c_str(); }
  48.   void Cursor(const string& cursor) { pgCursor = cursor; }
  49.   
  50. protected:
  51.   int Fetch(const string& num, const string& dir);
  52.   
  53. protected:
  54.   string pgCursor;
  55.   
  56. protected:
  57.   PgCursor() : PgTransaction() {} // Do not connect
  58. }; // End PgCursor Class Declaration
  59. #endif // PGCURSOR_H