|
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] |
Añade una base de datos a las conexiones disponibles.
La base de datos será abierta. Si ya existiera una conexión con el mismo nombre la base datos correspondiente será cerrada y borrada, sustituyéndola 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 conexión |
| password | Contraseña para el usuario |
| host | Nombre o dirección 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 método anterior pero utilizando una base de datos ya construida
| db | Base datos a añadir 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
Añade una base de datos a las conexiones disponibles utilizando los datos de otra conexión
| newConnName | Nombre a utilizar para la nueva conexion |
| sourceConnName | Nombre de una conexión existente a utilizar como origen de los datos de conexión |
| 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 excepción 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 excepción 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 información de la misma y el conjunto de registros obtenidos
Si hay un error SQL, eleva una excepción con el mensaje de error
Devuelve un array 'A' donde:
-A[0] contiene el número de registros -A[1] contiene el número 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 tamaño 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 transacción que inició el otro selectForUpdate.
En PostgreSQL se puede utizar el parámetro '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 excepción, terminando la transacción en curso. El parámetro '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 excepción 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] |
1.7.4