|
Eneboo - Documentación para desarrolladores
|
#include <FLManager.h>
Esta clase sirve como administrador de la base de datos.
Encargada de abrir los formularios u obtener sus definiciones (ficheros .ui). Tambien mantiene los metadatos de todas la tablas de la base de datos, ofreciendo la posibilidad de recuperar los metadatos mediante objetos FLTableMetaData de una tabla dada.
| FLManager::FLManager | ( | FLSqlDatabase * | db | ) | [protected] |
constructor
| FLManager::FLManager | ( | ) | [explicit] |
constructor
| FLManager::~FLManager | ( | ) |
destructor
Obtiene la definición de una acción a partir de su nombre.
Este método busca en los [id_modulo].xml la acción que se le pasa como nombre y construye y devuelve el objeto FLAction correspondiente. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| n | Nombre de la accion |
Modifica la estructura o metadatos de una tabla, preservando los posibles datos que pueda contener.
Según la definición existente en un momento dado de los metadatos en el fichero .mtd, este método reconstruye la tabla con esos metadatos sin la pérdida de información o datos, que pudieran existir en ese momento en la tabla.
| n | Nombre de la tabla a reconstruir |
| bool FLManager::alterTable | ( | const QString & | mtd1, |
| const QString & | mtd2, | ||
| const QString & | key = QString::null |
||
| ) |
Esta función es esencialmente igual a la anterior, se proporciona por conveniencia.
Modifica la estructura de una tabla dada, preservando los datos. La nueva estructura y la vieja se pasan en cadenas de caracteres con la descripcion XML.
| n | Nombre de la tabla a reconstruir |
| mtd1 | Descripcion en XML de la vieja estructura |
| mtd2 | Descripcion en XML de la nueva estructura |
| key | Clave sha1 de la vieja estructura |
| bool FLManager::checkMetaData | ( | FLTableMetaData * | tmd1, |
| FLTableMetaData * | tmd2 | ||
| ) |
Esta función es esencialmente igual a la anterior, se proporciona por conveniencia.
Esta función es esencialmente igual a la anterior, se proporciona por conveniencia.
Compara los metadatos de dos tablas, la definición en XML de esas dos tablas se pasan como dos cadenas de caracteres.
| mtd1 | Cadena de caracteres con XML que describe la primera tabla |
| mtd2 | Cadena de caracteres con XML que describe la primera tabla |
Comprueba si los metadatos definidos actualmente para una tabla en un fichero .mtd, difieren de los que tiene actualmente esa tabla en la base de datos (difieren con la copia que se tiene actualmente de ellos).
Cuando se realizan modificaciones en la definición de una tabla, es probable que esa tabla ya exista en la base de datos. Con este método podemos determinar posteriormente si lo metadatos definidos actualmente difieren de los de la tabla existente en la base de datos.
| n | Nombre de la tabla a comprobar |
| void FLManager::cleanupMetaData | ( | ) |
Limpieza la tabla flmetadata, actualiza el cotenido xml con el de los fichero .mtd actualmente cargados
| FLTableMetaData * FLManager::createSystemTable | ( | const QString & | n | ) |
Crea una tabla del sistema.
Este método lee directamente de disco el fichero con la descripción de una tabla del sistema y la crea en la base de datos. Su uso normal es para inicializar el sistema con tablas iniciales.
| n | Nombre de la tabla. |
| FLTableMetaData * FLManager::createTable | ( | const QString & | n | ) |
Crea una tabla en la base de datos.
| n | Nombre de la tabla que se quiere crear |
| FLTableMetaData * FLManager::createTable | ( | FLTableMetaData * | tmd | ) |
Crea una tabla en la base de datos.
| tmd | Metadatos de la tabla |
Comprueba si existe la tabla especificada en la base de datos.
| n | Nombre de la tabla que se quiere comprobar si existe |
| cache | Si cierto consulta primero la cache de tablas, en caso contrario realiza una consulta a la base para obtener las tablas existentes |
Obtiene el valor de gran tamaño segun su clave de referencia.
| refKey | Clave de referencia. Esta clave se suele obtener mediante FLManager::storeLargeValue |
| void FLManager::finish | ( | ) |
Acciones de finalización.
| QString FLManager::formatAssignValue | ( | FLFieldMetaData * | fMD, |
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
| QString FLManager::formatAssignValue | ( | const QString & | fieldName, |
| FLFieldMetaData * | fMD, | ||
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
| QString FLManager::formatAssignValue | ( | const QString & | fieldName, |
| int | t, | ||
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
| QString FLManager::formatAssignValueLike | ( | const QString & | fieldName, |
| FLFieldMetaData * | fMD, | ||
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
| QString FLManager::formatAssignValueLike | ( | FLFieldMetaData * | fMD, |
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
| QString FLManager::formatAssignValueLike | ( | const QString & | fieldName, |
| int | t, | ||
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
| QString FLManager::formatValue | ( | FLFieldMetaData * | fMD, |
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
Devuelve el contenido del valor de de un campo formateado para ser reconocido por la base de datos actual, dentro de la clausura WHERE de SQL.
Este método toma como parametros los metadatos del campo definidos con FLFieldMetaData. Además de TRUE y FALSE como posibles valores de un campo lógico también acepta los valores Sí y No (o su traducción al idioma correspondiente). Las fechas son adaptadas al forma AAAA-MM-DD, que es el formato reconocido por PostgreSQL .
| fMD | Objeto FLFieldMetaData que describre los metadatos para el campo |
| v | Valor que se quiere formatear para el campo indicado |
| upper | Si TRUE convierte a mayúsculas el valor (si es de tipo cadena) |
Este método hace lo mismo que el anterior, y se suministra por conveniencia.
| t | Tipo de datos del valor |
| v | Valor que se quiere formatear para el campo indicado |
| upper | Si TRUE convierte a mayúsculas el valor (si es de tipo cadena) |
Este método hace lo mismo que el anterior, y se suministra por conveniencia.
| t | Tipo de datos del valor |
| v | Valor que se quiere formatear para el campo indicado |
| upper | Si TRUE convierte a mayúsculas el valor (si es de tipo cadena) |
| QString FLManager::formatValueLike | ( | FLFieldMetaData * | fMD, |
| const QVariant & | v, | ||
| const bool | upper = false |
||
| ) |
Devuelve el contenido del valor de de un campo formateado para ser reconocido por la base de datos actual en condiciones LIKE, dentro de la clausura WHERE de SQL.
Este método toma como parametros los metadatos del campo definidos con FLFieldMetaData. Además de TRUE y FALSE como posibles valores de un campo lógico también acepta los valores Sí y No (o su traducción al idioma correspondiente). Las fechas son adaptadas al forma AAAA-MM-DD, que es el formato reconocido por PostgreSQL .
| fMD | Objeto FLFieldMetaData que describre los metadatos para el campo |
| v | Valor que se quiere formatear para el campo indicado |
| upper | Si TRUE convierte a mayúsculas el valor (si es de tipo cadena) |
| void FLManager::init | ( | ) |
Acciones de inicialización.
Para saber si la tabla dada es una tabla de sistema.
| n | Nombre de la tabla. |
| void FLManager::loadTables | ( | ) |
Carga en la lista de tablas los nombres de las tablas de la base de datos
| FLTableMetaData * FLManager::metadata | ( | QDomElement * | mtd, |
| bool | quick = false |
||
| ) |
Crea un objeto FLTableMetaData a partir de un elemento XML.
Dado un elemento XML, que contiene la descripción de una tablas, construye y devuelve el objeto FLTableMetaData correspondiente. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| mtd | Elemento XML con la descripción de la tabla |
| quick | Si TRUE no realiza chequeos, usar con cuidado |
| FLTableMetaData * FLManager::metadata | ( | const QString & | n, |
| bool | quick = false |
||
| ) |
Para obtener definicion de una tabla de la base de datos, a partir de un fichero XML.
El nombre de la tabla corresponde con el nombre del fichero mas la extensión ".mtd" que contiene en XML la descripción de la tablas. Este método escanea el fichero y construye/devuelve el objeto FLTableMetaData correspondiente, además realiza una copia de estos metadatos en una tabla de la misma base de datos para poder determinar cuando ha sido modificados y así, si es necesario, reconstruir la tabla para que se adapte a la nuevos metadatos. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
IMPORTANTE :Para que estos métodos funcionen correctamente, es estrictamente necesario haber creado la base de datos en PostgreSQL con codificación UNICODE; "createdb -E UNICODE abanq".
| n | Nombre de la tabla de la base de datos de la que obtener los metadatos |
| quick | Si TRUE no realiza chequeos, usar con cuidado |
| FLFieldMetaData * FLManager::metadataField | ( | QDomElement * | field, |
| bool | v = true, |
||
| bool | ed = true |
||
| ) |
Crea un objeto FLFieldMetaData a partir de un elemento XML.
Dado un elemento XML, que contiene la descripción de un campo de una tabla construye y agrega a una lista de descripciones de campos el objeto FLFieldMetaData correspondiente, que contiene dicha definición del campo. Tambien lo agrega a una lista de claves compuesta, si el campo construido pertenece a una clave compuesta. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| field | Elemento XML con la descripción del campo |
| v | Valor utilizado por defecto para la propiedad visible |
| ed | Valor utilizado por defecto para la propiedad editable |
| FLRelationMetaData * FLManager::metadataRelation | ( | QDomElement * | relation | ) |
Crea un objeto FLRelationMetaData a partir de un elemento XML.
Dado un elemento XML, que contiene la descripción de una relación entre tablas, construye y devuelve el objeto FLRelationMetaData correspondiente, que contiene dicha definición de la relación. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| relation | Elemento XML con la descripción de la relación |
| FLSqlQuery * FLManager::query | ( | const QString & | n, |
| QObject * | parent = 0 |
||
| ) |
Para obtener una consulta de la base de datos, a partir de un fichero XML.
El nombre de la consulta corresponde con el nombre del fichero mas la extensión ".qry" que contiene en XML la descripción de la consulta. Este método escanea el fichero y construye/devuelve el objeto FLSqlQuery. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| n | Nombre de la consulta de la base de datos que se quiere obtener |
| FLGroupByQuery * FLManager::queryGroup | ( | QDomElement * | group | ) |
Crea un objeto FLGroupByQuery a partir de un elemento XML.
Dado un elemento XML, que contiene la descripción de un nivel de agrupamiento de una consulta, construye y devuelve el objeto FLGroupByQuery correspondiente. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| group | Elemento XML con la descripción del nivel de agrupamiento de una consulta. |
| FLParameterQuery * FLManager::queryParameter | ( | QDomElement * | parameter | ) |
Crea un objeto FLParameterQuery a partir de un elemento XML.
Dado un elemento XML, que contiene la descripción de una parámetro de una consulta, construye y devuelve el objeto FLParameterQuery correspondiente. NO SE HACEN CHEQUEOS DE ERRORES SINTÁCTICOS EN EL XML.
| parameter | Elemento XML con la descripción del parámetro de una consulta |
| QString FLManager::storeLargeValue | ( | FLTableMetaData * | mtd, |
| const QString & | largeValue | ||
| ) |
Utilizado para almacenar valores grandes de campos en tablas separadas indexadas por claves SHA del contenido del valor.
Se utiliza para optimizar consultas que incluyen campos con valores grandes, como por ejemplo imágenes, para manejar en las consulta SQL la referencia al valor que es de tamaño constante en vez del valor en sí. Esto disminuye el tráfico al reducir considerablemente el tamaño de los registros obtenidos.
Las consultas pueden utilizar una referencia y obtener su valor sólo cuando se necesita mediante FLManager::fetchLargeValue().
| mtd | Metadatos de la tabla que contiene el campo |
| largeValue | Valor de gran tamaño del campo |
friend class FLSqlDatabase [friend] |
1.7.4