NDBT_Table.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef NDBT_TABLE_HPP
  14. #define NDBT_TABLE_HPP
  15. #include <ndb_global.h>
  16. #include <NdbApi.hpp>
  17. #include <NdbOut.hpp>
  18. class NDBT_Attribute : public NdbDictionary::Column {
  19. public:
  20.   NDBT_Attribute(const char* _name,
  21.  NdbDictionary::Column::Type _type,
  22.  int _length = 1,
  23.  bool _pk = false, 
  24.  bool _nullable = false):
  25.     NdbDictionary::Column(_name)
  26.   {
  27.     assert(_name != 0);
  28.     
  29.     setType(_type);
  30.     setLength(_length);
  31.     setNullable(_nullable);
  32.     setPrimaryKey(_pk);
  33.   }
  34. };
  35. class NDBT_Table : public NdbDictionary::Table {
  36.   /**
  37.    * Print meta information about table 
  38.    * (information on how it is strored, what the attributes look like etc.)
  39.    */
  40.   friend class NdbOut& operator <<(class NdbOut&, const NDBT_Table &);
  41. public: 
  42.   
  43.   NDBT_Table(const char* name, 
  44.      int noOfAttributes,
  45.      const NdbDictionary::Column attributes[])
  46.     : NdbDictionary::Table(name)
  47.   {
  48.     assert(name != 0);
  49.     
  50.     //setStoredTable(stored);
  51.     for(int i = 0; i<noOfAttributes; i++)
  52.       addColumn(attributes[i]);
  53.   }
  54.   static const NdbDictionary::Table * discoverTableFromDb(Ndb* ndb,
  55.   const char * name);
  56. };
  57. inline
  58. const NdbDictionary::Table * 
  59. NDBT_Table::discoverTableFromDb(Ndb* ndb, const char * name){
  60.   return ndb->getDictionary()->getTable(name);
  61. }
  62. /**
  63.  * Print meta information about index
  64.  * (information on how it is strored, what the attributes look like etc.)
  65.  */
  66. class NdbOut& operator <<(class NdbOut&, const NdbDictionary::Index &);
  67. #endif