📄 ndbschemacon.cpp
字号:
/* Copyright (C) 2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *//*********************************************************************Name: NdbSchemaCon.cppInclude:Link:Author: UABMNST Mona Natterkvist UAB/B/SD EMIKRON Mikael Ronstrom Date: 020826Version: 3.0Description: Old Interface between application and NDBDocumentation:Adjust: 980126 UABMNST First version. 020826 EMIKRON New version adapted to new DICT version 040524 Magnus Svensson - Adapted to not be included in public NdbApi unless the user wants to use it. NOTE: This file is only used as a compatibility layer for old test programs, New programs should use NdbDictionary.hpp*********************************************************************/#include <ndb_global.h>#include <NdbApi.hpp>#include <NdbSchemaCon.hpp>#include <NdbSchemaOp.hpp>/*********************************************************************NdbSchemaCon(Ndb* aNdb);Parameters: aNdb: Pointers to the Ndb object Remark: Creates a schemacon object. ************************************************************************************************/NdbSchemaCon::NdbSchemaCon( Ndb* aNdb ) : theNdb(aNdb), theFirstSchemaOpInList(NULL), theMagicNumber(0x75318642){ theError.code = 0;}//NdbSchemaCon::NdbSchemaCon()/*********************************************************************~NdbSchemaCon();Remark: Deletes the connection object. ************************************************************************************************/NdbSchemaCon::~NdbSchemaCon(){}//NdbSchemaCon::~NdbSchemaCon()/*********************************************************************NdbSchemaOp* getNdbSchemaOp();Return Value Return a pointer to a NdbSchemaOp object if getNdbSchemaOp was sussesful. Return NULL: In all other case. Parameters: tableId : Id of the database table beeing deleted.************************************************************************************************/NdbSchemaOp*NdbSchemaCon::getNdbSchemaOp(){ NdbSchemaOp* tSchemaOp; if (theFirstSchemaOpInList != NULL) { theError.code = 4401; // Only support one add table per transaction return NULL; }//if tSchemaOp = new NdbSchemaOp(theNdb); if ( tSchemaOp == NULL ) { theError.code = 4000; // Could not allocate schema operation return NULL; }//if theFirstSchemaOpInList = tSchemaOp; int retValue = tSchemaOp->init(this); if (retValue == -1) { release(); theError.code = 4000; // Could not allocate buffer in schema operation return NULL; }//if return tSchemaOp;}//NdbSchemaCon::getNdbSchemaOp()/*********************************************************************int execute();Return Value: Return 0 : execute was successful. Return -1: In all other case. Parameters : aTypeOfExec: Type of execute.Remark: Initialise connection object for new transaction. ************************************************************************************************/int NdbSchemaCon::execute(){ if(theError.code != 0) { return -1; }//if NdbSchemaOp* tSchemaOp; tSchemaOp = theFirstSchemaOpInList; if (tSchemaOp == NULL) { theError.code = 4402; return -1; }//if if ((tSchemaOp->sendRec() == -1) || (theError.code != 0)) { // Error Code already set in other place return -1; }//if return 0;}//NdbSchemaCon::execute()/*********************************************************************void release();Remark: Release all schemaop.************************************************************************************************/void NdbSchemaCon::release(){ NdbSchemaOp* tSchemaOp; tSchemaOp = theFirstSchemaOpInList; if (tSchemaOp != NULL) { tSchemaOp->release(); delete tSchemaOp; }//if theFirstSchemaOpInList = NULL; return;}//NdbSchemaCon::release()#include <NdbError.hpp>static voidupdate(const NdbError & _err){ NdbError & error = (NdbError &) _err; ndberror_struct ndberror = (ndberror_struct)error; ndberror_update(&ndberror); error = NdbError(ndberror);}const NdbError & NdbSchemaCon::getNdbError() const { update(theError); return theError;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -