X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=include%2Fanna%2Fdbms%2Ffunctions.hpp;fp=include%2Fanna%2Fdbms%2Ffunctions.hpp;h=0000000000000000000000000000000000000000;hb=a3b95648bd76140ef55e0b5941d423eee6c3856f;hp=e782d34726c089418f0b2dbacb737043d5f616d5;hpb=94fc4366adedbf26ca6ef3104f88d41fa85f5a72;p=anna.git diff --git a/include/anna/dbms/functions.hpp b/include/anna/dbms/functions.hpp deleted file mode 100644 index e782d34..0000000 --- a/include/anna/dbms/functions.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// 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_functions_hpp -#define anna_dbms_functions_hpp - -#include - -namespace anna { -namespace dbms { -class Connection; -} -} - -namespace anna { -namespace dbms { - -using namespace anna; - - -/** - Métodos usados habitualmente para trabajar contra la base de datos. -*/ -struct functions { -public: - /** - * Este metodo asegura la integridad entre el esquema de tablas instalado y el esperado por los procesos de un proyecto. - * Para ello cada uno de los proyectos debe invocar a este método indicado los parámetro requeridos. Es imprescindible - * que la versión esperada del esquema de base de datos esté definida en una única variable centralizada. - * - * La idea es que cada vez que hagamos un cambio en la estructura de tablas de una cierta entidad cambiemos la versión - * del esquema, y ese cambio deberá reflejarse en la invocación a este nuevo método. - * - * Este método lanzará una excepción si el último parche instalado en el esquema de base de datos no coincide - * con el valor de la variable \em requiredPatch. - * - * Cada proceso debe invocar la comprobación de esquema en cuanto la base de datos tenga una conexión disponible, de forma - * que si el esquema de base de datos no coincide con el esperado el proceso mostrará un error indicado el esquema de base - * de datos esperado y el esquema de base datos instalado. - * - * Para usar este método el esquema de base de nuestro proyecto debe disponer de una tabla que debe contener, al menos, - * la siguiente estructura: - * - * \code - * -- Ejemplo de creación para Oracle(tm) - * create table axe_dataScheme ( - * id varchar(8) not null, - * installation_date date default sysdate not null - * ); - * - * alter table axe_dataScheme add constraint axe_dataScheme_pk primary key (id); - * - * \endcode - * - * \code - * -- Ejemplo de creación para PostgreSQL - * create table data_scheme ( - * id varchar(8) not null, - * installation_date timestamp default now (), - * primary key (id) - * ); - * \endcode - * - * El nombre de la tabla y los campos de las columnas podrían ser distintos ya que este método los recibe como parámetros. - * - * Un ejemplo de implementación podría ser: - * - * \code - * //static - * void axe::storage::functions::verifyDataScheme (dbms::Connection& connection) - * throw (RuntimeException) - * { - * anna::dbms::functions::verifyDataScheme (connection, "axe_dataScheme", "v1.3"); - * } - * \endcode - * - * \param connection Conexión usada para acceder a los datos. - * \param tableName Nombre de la tabla que contiene las versiones instaladas. - * \param requiredPatch Identificador de parche de base de base de datos requerido por los procesos de nuestro proyecto. - * Este indicador debería estar definido en un único punto para todo nuestro proyecto. - * \param columnID Nombre de la columna que contiene el identificador de cada uno de los parches instalados. - * \param columnDate Nombre de la columna que contiene la fecha de instalación de cada parche. - */ - static void verifyDataScheme(dbms::Connection& connection, const char* tableName, const char* requiredPatch, const char* columnID = "id", const char* columnDate = "installation_date") - throw(RuntimeException); -}; - -} -} - -#endif