ANNA Suite  2020b
Multipurpose development suite for Telco applications
Protected Member Functions | Friends | List of all members
anna::dbms::StatementTranslator Class Referenceabstract

#include <StatementTranslator.hpp>

Inheritance diagram for anna::dbms::StatementTranslator:
Inheritance graph
[legend]

Protected Member Functions

 StatementTranslator (const char *name)
 
virtual const char * apply (const char *statement) noexcept(false)=0
 

Friends

class Database
 

Detailed Description

Clase que ajustar de forma transparente las diferencias de tratamiento que tiene las sentencias SQL en los distintos motores de base de datos. De esta forma una aplicación originariamente escrita para un determinado RDBMS no tendrá que hacer ningún cambio en las sentencias SQL al cambiar a otro RDBMS.

Por ejemplo para indicar los parámetros de entrada en Oracle se indica con un literal precedido de ':' o '&'. Con lo que la sentencia podría quedar como:

insert into foo (field1, field2) values (:f1, :f2)

En PosgreSQL (tambien sorpotado en Oracle) quedaría algo así:

insert into foo (field1, field2) values (&f1, &f2)

Mientras que en MySQL la expresión debería ser como:

insert into foo (field1, field2) values (?, ?);
See also
anna::dbms::Database::setStatementTranslator

Constructor & Destructor Documentation

◆ StatementTranslator()

anna::dbms::StatementTranslator::StatementTranslator ( const char *  name)
inlineexplicitprotected

Constructor.

Parameters
nameNombre lógico del traductor.
56 : a_name(name) {;}
Here is the call graph for this function:

Member Function Documentation

◆ apply()

virtual const char* anna::dbms::StatementTranslator::apply ( const char *  statement)
protectedpure virtualnoexcept

Se invoca automáticamente desde anna::dbms::Database::createStatement si la instancia de la base de datos tiene asociada alguna instancia heredada de esta clase.

Éste metodo sólo se invoca una vez para cada una de las sentencias definidas sobre la base de datos, por lo que la traducción de sentencias SQL tiene un consumo despreciable con respecto al tiempo total del proceso.

Parameters
statementSentencia SQL original.
Returns
La sentencia SQL correspondiente con la original, pero tratada para que pueda ser interpretada correctamente por el motor de base de datos sobre el que se va a ejecutar.

Friends And Related Function Documentation

◆ Database

friend class Database
friend

The documentation for this class was generated from the following file: