X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms.mysql%2FOracleTranslator.hpp;fp=include%2Fanna%2Fdbms.mysql%2FOracleTranslator.hpp;h=95573e1597bee78f7cca074a07a7b4711686f2bb;hb=78be86969d2f26a9084b0c4af6ce43d5fa4ed3fd;hp=0000000000000000000000000000000000000000;hpb=a3b95648bd76140ef55e0b5941d423eee6c3856f;p=anna.git diff --git a/include/anna/dbms.mysql/OracleTranslator.hpp b/include/anna/dbms.mysql/OracleTranslator.hpp new file mode 100644 index 0000000..95573e1 --- /dev/null +++ b/include/anna/dbms.mysql/OracleTranslator.hpp @@ -0,0 +1,54 @@ +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // + + +#ifndef anna_dbms_mysql_OracleTranslator_hpp +#define anna_dbms_mysql_OracleTranslator_hpp + +#include + +namespace anna { + +namespace dbms { + +namespace mysql { + +/** + * Ésta clase permite que sentencias, escritas originalmente para ser ejecutadas sobre + * Oracle (tm) puedan ser ejecutadas desde MySQL (tm) sin ningún tipo de problemas. + * + * Si este traductor se aplica sobre una sentencia SQL escrita originalmente para + * funcionar sobre MySQL el resultado será la misma sentencia. + * + * \see anna::dbms::Database::setStatementTranslator + */ +class OracleTranslator : public StatementTranslator { +public: + /** + * Obtiene la instancia de este traductor de sentencias SQL. + */ + static StatementTranslator* instantiate() throw() { return &st_this; } + +private: + char* a_buffer; + int a_size; + + static OracleTranslator st_this; + + OracleTranslator() : StatementTranslator("dbms::mysql::OracleTranslator"), + a_buffer(NULL), a_size(-1) + {;} + + const char* apply(const char* statement) throw(RuntimeException); + void allocate(const char* statement) throw(); +}; + +} +} +} + +#endif