Eneboo - Documentación para desarrolladores
|
#include <AQObjects.h>
Tipos públicos | |
enum | ModeAccess { Insert = 0, Edit = 1, Del = 2, Browse = 3 } |
enum | ConnOptions { User = 0, Password = 1, Port = 2, Host = 3 } |
enum | SpecialType { Serial = 100, Unlock = 200, Check = 300 } |
enum | Cardinality { RELATION_1M = 0, RELATION_M1 = 1 } |
enum | TableType { Tables = 0x01, SystemTables = 0x02, Views = 0x04, AllTables = 0xff } |
enum | SqlErrorType { SqlErrorNone, SqlErrorConnection, SqlErrorStatement, SqlErrorTransaction, SqlErrorUnknown } |
Slots públicos | |
bool | addDatabase (const QString &driverAlias, const QString &nameDB, const QString &user, const QString &password, const QString &host, int port, const QString &connectionName) |
bool | addDatabase (FLSqlDatabase *db, const QString &connectionName="default") |
bool | addDatabase (const QString &newConnName, const QString &sourceConnName="default") |
bool | removeDatabase (const QString &connectionName) |
FLSqlDatabase * | database (const QString &connectionName="default") |
void | finish () |
bool | insert (FLSqlCursor *cur, const QStringList &fields, const QValueList< QVariant > &values) |
bool | insert (const QString &table, const QStringList &fields, const QValueList< QVariant > &values, const QString &connName="default") |
bool | update (FLSqlCursor *cur, const QStringList &fields, const QValueList< QVariant > &values, const QString &where="") |
bool | update (const QString &table, const QStringList &fields, const QValueList< QVariant > &values, const QString &where="", const QString &connName="default") |
bool | del (FLSqlCursor *cur, const QString &where="") |
bool | del (const QString &table, const QString &where="", const QString &connName="default") |
QValueList< QVariant > | select (const QString &select, const QString &from, const QString &where=QString::null, const QString &orderBy=QString::null, const QString &connName="default") |
QValueList< QVariant > | selectForUpdate (const QString &select, const QString &from, const QString &where=QString::null, bool nowait=false, const QString &connName="default") |
Métodos públicos | |
AQSql () |
enum AQSql::Cardinality |
enum AQSql::ConnOptions |
enum AQSql::ModeAccess |
enum AQSql::SpecialType |
enum AQSql::SqlErrorType |
enum AQSql::TableType |
AQSql::AQSql | ( | ) | [inline] |
bool AQSql::addDatabase | ( | const QString & | driverAlias, |
const QString & | nameDB, | ||
const QString & | user, | ||
const QString & | password, | ||
const QString & | host, | ||
int | port, | ||
const QString & | connectionName | ||
) | [inline, slot] |
Aade una base de datos a las conexiones disponibles.
La base de datos ser abierta. Si ya existiera una conexin con el mismo nombre la base datos correspondiente ser cerrada y borrada, sustituyndola por la nueva.
driverAlias | Alias del driver ( PostgreSQL, MySQL, SQLite, ... ), ver FLSqlDatabase. |
nameDB | Nombre de la base de datos a la que conectar |
user | Usuario de la conexin |
password | Contrasea para el usuario |
host | Nombre o direccin del servidor de la base de datos |
port | Puerto TCP de conexion |
connectionName | Nombre de la conexion |
bool AQSql::addDatabase | ( | FLSqlDatabase * | db, |
const QString & | connectionName = "default" |
||
) | [inline, slot] |
Sobrecargada por conveniencia
Practicamente hace lo mismo que el mtodo anterior pero utilizando una base de datos ya construida
db | Base datos a aadir a las conexiones disponibles, ver FLSqlDatabase. |
connectionName | Nombre de la conexion |
bool AQSql::addDatabase | ( | const QString & | newConnName, |
const QString & | sourceConnName = "default" |
||
) | [inline, slot] |
Sobrecargada por conveniencia
Aade una base de datos a las conexiones disponibles utilizando los datos de otra conexin
newConnName | Nombre a utilizar para la nueva conexion |
sourceConnName | Nombre de una conexin existente a utilizar como origen de los datos de conexin |
FLSqlDatabase* AQSql::database | ( | const QString & | connectionName = "default" | ) | [inline, slot] |
Obtiene la base de datos de una conexion.
connectionNmae | Nombre de la conexion |
bool AQSql::del | ( | FLSqlCursor * | cur, |
const QString & | where = "" |
||
) | [inline, slot] |
Elimina un conjunto de registros de un cursor
Si hay un error SQL, eleva una excepcin con el mensaje de error
Ejemplo:
var cur = new AQSqlCursor("clientes"); try { AQSql.del(cur, "codcliente='1'"); } catch (e) { sys.errorMsgBox("Error SQL: " + e); }
bool AQSql::del | ( | const QString & | table, |
const QString & | where = "" , |
||
const QString & | connName = "default" |
||
) | [inline, slot] |
void AQSql::finish | ( | ) | [inline, slot] |
Finalizar todas las conexiones
bool AQSql::insert | ( | const QString & | table, |
const QStringList & | fields, | ||
const QValueList< QVariant > & | values, | ||
const QString & | connName = "default" |
||
) | [inline, slot] |
bool AQSql::insert | ( | FLSqlCursor * | cur, |
const QStringList & | fields, | ||
const QValueList< QVariant > & | values | ||
) | [inline, slot] |
Inserta un registro en un cursor
Si hay un error SQL, eleva una excepcin con el mensaje de error
Ejemplo:
var cur = new AQSqlCursor("clientes"); try { AQSql.insert(cur, ["codcliente","nombre","cifnif","codserie"], ["1","pepe","XYZ","A"]); } catch (e) { sys.errorMsgBox("Error SQL: " + e); }
Elimina una base de datos de las conexiones disponibles.
Cierra la base de datos correspondiente y la elimina.
connectionName | Nombre de la conexion |
QValueList<QVariant> AQSql::select | ( | const QString & | select, |
const QString & | from, | ||
const QString & | where = QString::null , |
||
const QString & | orderBy = QString::null , |
||
const QString & | connName = "default" |
||
) | [inline, slot] |
Ejecuta una consulta y devuelve informacin de la misma y el conjunto de registros obtenidos
Si hay un error SQL, eleva una excepcin con el mensaje de error
Devuelve un array 'A' donde:
-A[0] contiene el nmero de registros -A[1] contiene el nmero de campos -A[2] contiene otro array con los nombres de lo campos, en orden correlativo al que aparecen en la consulta -A[3..fin] los valores de los campos, en grupos de tamao A[1]
Ejemplo:
var records; try { records = AQSql.select("bancos.*", "bancos"); if (!records.length) return;
var size = records[0]; var nFields = records[1]; var fieldNames = records[2];
var rec = ""; for (var i = 0; i < nFields; ++i) rec += fieldNames[i] + " | "; print(rec); print("==============================================");
for (var i = 3; i <= size * nFields; i += nFields) { rec = ""; for (var j = 0; j < nFields; ++j) { rec += records[i + j] + " | "; } print(rec); } } catch (e) { sys.errorMsgBox("Error SQL: " + e); }
QValueList<QVariant> AQSql::selectForUpdate | ( | const QString & | select, |
const QString & | from, | ||
const QString & | where = QString::null , |
||
bool | nowait = false , |
||
const QString & | connName = "default" |
||
) | [inline, slot] |
Esencialmente hace lo mismo que AQSql::select(), pero con la diferencia que reservar un bloqueo sobre los registros que devuelve la consulta.
Si hay otro selectForUpdate anterior sobre los mismos o algunos registros que obtiene la consulta esta llamanda quedar en espera, bloqueada sobre esos registros, hasta que termine la transaccin que inici el otro selectForUpdate.
En PostgreSQL se puede utizar el parmetro 'nowait'. Si es TRUE y si al ejecutar la consulta se detecta que se va a caer en un bloqueo, es decir hay otro selectForUpdate anterior, no se bloquear la llamada, y se elevar una excepcin, terminando la transaccin en curso. El parmetro 'nowait' no tiene efecto para cualquier otra base de datos distinta a PostgreSQL.
bool AQSql::update | ( | FLSqlCursor * | cur, |
const QStringList & | fields, | ||
const QValueList< QVariant > & | values, | ||
const QString & | where = "" |
||
) | [inline, slot] |
Actualiza un conjunto de registros de un cursor con nuevos valores
Si hay un error SQL, eleva una excepcin con el mensaje de error
Ejemplo:
var cur = new AQSqlCursor("clientes"); try { AQSql.update(cur, ["nombre","cifnif","codserie"], ["juan","ZYX","A"], "codcliente='1'"); } catch (e) { sys.errorMsgBox("Error SQL: " + e); }
bool AQSql::update | ( | const QString & | table, |
const QStringList & | fields, | ||
const QValueList< QVariant > & | values, | ||
const QString & | where = "" , |
||
const QString & | connName = "default" |
||
) | [inline, slot] |