Eneboo - Documentación para desarrolladores
|
#include <FLSqlDatabase.h>
Gestin de bases de datos.
Proporciona una capa de abstraccin para manejar distintos tipos de bases de datos. A travs de controladores internos (drivers) especficos se gestiona el acceso a cada uno de los tipos de la bases de datos, ver FLSqlDriver.
Ofrece mtodos para cargar controladores, conectar a la base de datos y realizar operaciones especficas de forma unificada.
El sistemas de persistencia utiliza esta clase para poder trabajar de forma homognea sobre cualquier tipo de base de datos de la que exista un controlador.
FLSqlDatabase::FLSqlDatabase | ( | ) |
constructor
FLSqlDatabase::~FLSqlDatabase | ( | ) |
destructor
bool FLSqlDatabase::alterTable | ( | const QString & | mtd1, |
const QString & | mtd2, | ||
const QString & | key = QString::null |
||
) |
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 |
int FLSqlDatabase::atFrom | ( | FLSqlCursor * | cur | ) |
Obtiene la posicin del registro actual.
La posicin del registro actual dentro del cursor se calcula teniendo en cuenta el filtro actual ( FLSqlCursor::curFilter() ) y el campo o campos de ordenamiento del mismo ( QSqlCursor::sort() ). Este mtodo es til, por ejemplo, para saber en que posicin dentro del cursor se ha insertado un registro.
cur | Cursor sobre el que calcular la posicin del registro. |
bool FLSqlDatabase::canDetectLocks | ( | ) | const |
bool FLSqlDatabase::canRegenTables | ( | ) |
bool FLSqlDatabase::canSavePoint | ( | ) |
bool FLSqlDatabase::canTransaction | ( | ) | const |
void FLSqlDatabase::closeDB | ( | ) |
Cierra la conexin actual de la base de datos
bool FLSqlDatabase::connectDB | ( | const QString & | database, |
const QString & | user = QString::null , |
||
const QString & | password = QString::null , |
||
const QString & | host = QString::null , |
||
int | port = -1 , |
||
const QString & | connName = "default" |
||
) |
Conecta con una base de datos.
Para poder conectar con una base de datos es imprescindible haber cargado con anterioridad el driver correspondiente utilizando FLSqlDatabase::loadDriver().
A partir de la llamada a este mtodo la base de datos actual para a ser a la que conectamos. Internamente, si es posible, crea dos conexiones paralelas a la misma base de datos; FLSqlDatabase::db() y FLSqlDatabase::dbAux().
database | Nombre de la base de datos a la que conectar |
user | Usuario |
password | Contrasea |
host | Servidor de la base de datos |
port | Puerto TCP de conexin |
connName | Nombre de la conexion |
bool FLSqlDatabase::connectDB | ( | ) |
Conecta con una base de datos utilizando los datos de conexin actuales
QString FLSqlDatabase::connectionName | ( | ) | const [inline] |
QString FLSqlDatabase::connectOptions | ( | ) | const |
bool FLSqlDatabase::createTable | ( | FLTableMetaData * | tmd | ) |
Crea una tabla en la base de datos actual.
tmd | Metadatos con la descripcin de la tabla a crear |
QString FLSqlDatabase::database | ( | ) | const [inline] |
QSqlDatabase* FLSqlDatabase::db | ( | ) | const [inline] |
QSqlDatabase* FLSqlDatabase::dbAux | ( | ) | const [inline] |
Obtiene el puerto de conexin usado habitualmente por un controlador
alias | Alias del controlador |
QStringList FLSqlDatabase::detectLocks | ( | ) |
Comprueba si las transacciones de la base de datos actual estn bloqueando a otras conexiones.
Si hay bloqueos devuelve una lista de los mismos con el formato descrito en FLSqlDatabase::locksStatus()
QStringList FLSqlDatabase::detectRisksLocks | ( | const QString & | table = QString::null , |
const QString & | primaryKeyValue = QString::null |
||
) |
Comprueba si hay riesgo de caer en un bloqueo en espera con otras conexiones.
Si hay riesgo devuelve una lista de los bloqueos candidatos con el mismo formato descrito en FLSqlDatabase::locksStatus()
table | El nombre de una tabla para solo comprobar los riesgos sobre ella, o vacio para comprobarlos en todas las tablas. |
primaryKeyValue | El valor de la clave primaria de un registro para solo comprobar los riesgos sobre el, o vacio para comprobarlos en todos. ( No funciona con claves compuestas ). |
QStringList FLSqlDatabase::driverAliases | ( | ) | [static] |
QString FLSqlDatabase::driverName | ( | ) | const [inline] |
name | Nombre interno de un controlador |
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 mtodo toma como parametros los metadatos del campo definidos con FLFieldMetaData. Adems de TRUE y FALSE como posibles valores de un campo lgico tambin acepta los valores S y No (o su traduccin al idioma correspondiente). Las fechas son adaptadas al forma AAAA-MM-DD, que es el formato reconocido por PostgreSQL .
t | Tipo de datos del valor |
v | Valor que se quiere formatear para el campo indicado |
upper | Si TRUE convierte a maysculas el valor (si es de tipo cadena) |
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 mtodo toma como parametros los metadatos del campo definidos con FLFieldMetaData. Adems de TRUE y FALSE como posibles valores de un campo lgico tambin acepta los valores S y No (o su traduccin al idioma correspondiente). Las fechas son adaptadas al forma AAAA-MM-DD, que es el formato reconocido por PostgreSQL .
t | Tipo de datos del valor |
v | Valor que se quiere formatear para el campo indicado |
upper | Si TRUE convierte a maysculas el valor (si es de tipo cadena) |
QString FLSqlDatabase::host | ( | ) | const [inline] |
bool FLSqlDatabase::isOpen | ( | ) | const |
bool FLSqlDatabase::isOpenError | ( | ) | const |
QSqlError FLSqlDatabase::lastError | ( | ) | const |
Carga un controlador.
driverName | Nombre interno del controlador que se desa cargar |
connName | Nombre de la conexion |
QStringList FLSqlDatabase::locksStatus | ( | ) |
Para obtener informacin sobre el estado de los bloqueos existentes en la base de datos.
Si hay bloqueos devuelve una lista de cadenas de texto en forma de registros de informacin. En esta lista la primera cadena de texto contiene los nombres de los campos de informacin incluidos y separados con "@", las siguientes cadenas son una por cada bloqueo con la informacin correspondiente. Si hay registros bloqueados produciendo situaciones de espera, se incluye informacin de los mismos cuando la cadena empieza por "##", indicando el nombre del campo clave primaria y el valor para el registro bloqueado.
Ejemplo:
"relation@locktype@pid" "stocks@RowExclusiveLock@8229" "##idstock=203" "secuencias@ExclusiveLock@8393"
FLManager * FLSqlDatabase::manager | ( | ) |
FLManagerModules * FLSqlDatabase::managerModules | ( | ) |
void FLSqlDatabase::Mr_Proper | ( | ) |
Ejecuta tareas de limpieza y optimizacin de la base de datos
Obtiene si un controlador necesita una opcin de conexin, a partir de su alias.
alias | Alias del controlador |
connOption | Tipo de opcin a comprobar, del tipo enumeracin FLSqlDatabase::ConnOptions |
Obtiene el siguiente valor de la secuencia para campos del tipo serial.
table | Nombre la tabla del campo serial |
field | Nombre del campo serial |
QString FLSqlDatabase::password | ( | ) | const [inline] |
int FLSqlDatabase::port | ( | ) | const [inline] |
bool FLSqlDatabase::regenTable | ( | const QString & | n, |
FLTableMetaData * | tmd | ||
) |
Regenera una tabla si su estructura actual en la base de datos difiere de la estructura definida en los metadatos pasados como parmetro.
n | Nombre de la tabla de la base de datos |
tmd | Metadatos con la descripcin de la tabla |
Libera un punto de salvaguarda
n | Nombre del punto de salvaguarda a liberar |
Deshace operaciones hasta el punto de salvaguarda
n | Nombre del punto de salvaguarda |
Crea un punto de salvaguarda
n | Nombre que se le asignar al punto de salvaguarda |
QStringList FLSqlDatabase::tables | ( | ) | const |
QStringList FLSqlDatabase::tables | ( | QSql::TableType | type | ) | const |
QString FLSqlDatabase::user | ( | ) | const [inline] |