Ananas Library 0.9.5
|
#include <adatabase.h>
Public Types | |
enum | DBPermission { DBP_NoAccess = 0 , DBP_View = 1 << 0 , DBP_Update = 1 << 1 , DBP_Insert = 1 << 2 , DBP_Delete = 1 << 3 , DBP_Execute = 1 << 4 , DBP_TurnOn = 1 << 5 , DBP_TurnOff = 1 << 6 , DBP_All = 0xFFFF } |
enum | dbServer { unknown , mysql , postgresql , odbc , oracle , mssql , sybase , unknown , mysql , postgresql , odbc , oracle , mssql , sybase } |
enum | dbServer { unknown , mysql , postgresql , odbc , oracle , mssql , sybase , unknown , mysql , postgresql , odbc , oracle , mssql , sybase } |
Signals | |
void | refresh () |
Public Member Functions | |
aDatabase () | |
~aDatabase () | |
bool | init (aCfgRc *rc, const QString &dbname=QString::null) |
Creates database on SQL server. | |
bool | init (const QString &rcname, const QString &dbname=QString::null) |
Creates database on SQL server. This is overloaded method, provided for convenience. | |
bool | prepareDatabaseConnect (aCfgRc *rc) |
void | done () |
QSqlDatabase * | db (const QString &dbname=QString::null) |
Returns database connection. | |
bool | checkStructure () |
bool | create () |
bool | drop (const QString &) |
bool | update () |
Q_ULLONG | uid (int otype) |
int | uidType (Q_ULLONG uid) |
aDataTable * | table (const QString &name=QString::null) |
bool | tableExists (const QString &name) |
void | markDeleted (Q_ULLONG uid) |
void | deleteMarked () |
QString | driverName () |
bool | isAccessRights (int md_type, Q_ULLONG obj_id, DBPermission req_operation) |
bool | exchangeDataSystables (QDomDocument &xml, bool import) |
bool | exchangeDataCatalogues (QDomDocument &xml, bool import) |
bool | exchangeDataDocuments (QDomDocument &xml, bool import) |
bool | exchangeDataJournals (QDomDocument &xml, bool import) |
bool | exchangeDataInfoRegisters (QDomDocument &xml, bool import) |
bool | exchangeDataAccumulationRegisters (QDomDocument &xml, bool import) |
bool | exchangeDataUniques (QDomDocument &xml, bool import) |
bool | transaction () |
bool | commit () |
bool | rollback () |
QStringList | users () |
int | loginUsersCount () |
bool | login (const QString &username, const QString &password, int applicationId=0) |
void | logout () |
void | netupdate () |
bool | isObjectLocked (Q_ULLONG id) |
bool | objectLock (Q_ULLONG id) |
void | objectUnlock (Q_ULLONG id=0) |
int | rolePermission (int role_id, int md_id) |
void | setRolePermission (int role_id, int md_id, int new_permission) |
bool | init (aCfgRc *rc, const QString &dbname=QString::null) |
bool | init (const QString &rcname, const QString &dbname=QString::null) |
void | done () |
QSqlDatabase * | db (const QString &dbname=QString::null) |
bool | checkStructure () |
bool | create () |
bool | drop (const QString &) |
bool | update () |
Q_ULLONG | uid (int otype) |
int | uidType (Q_ULLONG uid) |
aDataTable * | table (const QString &name=QString::null) |
bool | tableExists (const QString &name) |
void | markDeleted (Q_ULLONG uid) |
void | deleteMarked () |
QString | driverName () |
bool | exchangeDataSystables (QDomDocument &xml, bool import) |
bool | exchangeDataCatalogues (QDomDocument &xml, bool import) |
bool | exchangeDataDocuments (QDomDocument &xml, bool import) |
bool | exchangeDataJournals (QDomDocument &xml, bool import) |
bool | exchangeDataInfoRegisters (QDomDocument &xml, bool import) |
bool | exchangeDataAccumulationRegisters (QDomDocument &xml, bool import) |
bool | exchangeDataUniques (QDomDocument &xml, bool import) |
Static Public Member Functions | |
static QStringList | supportedDriverList () |
static QStringList | getUniqueIndices (const QString &flddef) |
static QString | tableDbName (aCfg &md, aCfgItem context, long *tid) |
static QString | tableDbName (aCfg &md, aCfgItem context) |
static aDatabase * | database () |
static QStringList | supportedDriverList () |
static QStringList | getUniqueIndices (const QString &flddef) |
static QString | tableDbName (aCfg &md, aCfgItem context, long *tid) |
static QString | tableDbName (aCfg &md, aCfgItem context) |
Public Attributes | |
aCfg | cfg |
QDataSchema * | qds |
QSqlDatabase * | ddb |
Protected Member Functions | |
void | timerEvent (QTimerEvent *) |
Database abstraction layer class. Used for working with SQL database on metadata context.
enum aDatabase::dbServer |
type of database drivers
enum aDatabase::dbServer |
type of database drivers
aDatabase::aDatabase | ( | ) |
Constructor has no arguments.
aDatabase::~aDatabase | ( | ) |
Destructor.
References done().
bool aDatabase::checkStructure | ( | ) |
Check database structure.
Check database structure. Don't implemented.
bool aDatabase::create | ( | ) |
Helper method.
QSqlDatabase * aDatabase::db | ( | const QString & | dbname = QString::null | ) |
Returns database connection.
dbname | (in) - database connection name. Default value used if dbname is empty. |
Returns database connection.
dbname | (in) - database connection name. Default value used if dbname is empty. |
Referenced by aARegister::deleteDocument(), aIRegister::deleteDocument(), deleteMarked(), aIRegister::deleteTable(), done(), driverName(), aDocJournal::getPrefix(), aARegister::getSaldo(), aARegister::getSaldoByManyDimensions(), init(), aExtSQL::init(), aARegister::insert_values(), aDocument::IsSignedIn(), markDeleted(), aDocJournal::nextNumber(), aARegister::recalculate_saldo(), aCatGroup::SetParent(), aDocument::TableNewLine(), uid(), uidType(), and aARegister::update_values().
void aDatabase::deleteMarked | ( | ) |
void aDatabase::done | ( | ) |
Closes database connection.
References db().
Referenced by prepareDatabaseConnect(), and ~aDatabase().
QString aDatabase::driverName | ( | ) |
|
static |
getUniqueIndices procedure parses table definition and returns list of string in form 'U'<num>'%1('<field-list>')' Syntax of index field of table definition is extended to allow using of multicolumn indices. For each multicolumn index column 'U'<num> character sequence should be added to index field of column definition, where <num> is a number of multicolumn index. Example: Definition "a c 20 * pu1,b c 30 * iu1,c d * * u2,d n 10 3 u2" leads to creation of two multicolumn indices: (a,b) and (c,d).
flddefs | (in) - database table definition |
returned strings can be easily used to create SQL-query for index creation as follows: query="create unique index "+tablename+"_uniq_"+retval.arg(" on "+tablename)
bool aDatabase::init | ( | aCfgRc * | rc, |
const QString & | dbname = QString::null ) |
Creates database on SQL server.
Uses rc file parameters values and makes connection to database server. Then creates database with name obtained from rc file.
rc | (in) - rc object reference. |
dbname | (in) - unused now. |
Creates database on SQL server. Reads rc file and makes connection to database server. Then creates database with name obtained from rc file.
rc | (in) - rc object reference. |
dbname | (in) - unused now. |
References cfg, db(), prepareDatabaseConnect(), aLog::print(), and aCfgRc::value().
Referenced by init(), and aEngine::init().
bool aDatabase::init | ( | const QString & | rcname, |
const QString & | dbname = QString::null ) |
Creates database on SQL server. This is overloaded method, provided for convenience.
/en
rcname | (in) - rc file name |
dbname | (in) - not used |
Вспомогательный метод для установления соединения с БД на SQL сервере или ее создания.
Перегружет метод init( aCfgRc *rc, const QString &dbname ) и использует его.
rcname | (in) - имя файла ресурсов, содержащего параметры соединения с базой данных. |
dbname | (in) - имя базы данных. (не используется, берется из файла ресурсов) |
This is overloaded method, provided for convenience.
rcname | (in) - rc file name. |
dbname | (in) - parameter to pass trough. |
References cfg, init(), and aCfg::readrc().
void aDatabase::markDeleted | ( | Q_ULLONG | uid | ) |
Sets delete flag to true in system table for uid.
uid | - id for mark deleted |
Referenced by aDocument::Copy(), aDocument::Delete(), aObject::Delete(), aDocJournal::deleteDocument(), aDocument::New(), and aDocument::TableDelete().
bool aDatabase::prepareDatabaseConnect | ( | aCfgRc * | dbParams | ) |
References done(), and aCfgRc::value().
Referenced by init().
aDataTable * aDatabase::table | ( | const QString & | name = QString::null | ) |
Creates aDataTable object for browsing and editing sql table in current database.
name | (in) - sql table name. |
References tableExists().
Referenced by aObject::tableInsert(), and aObject::tableInsert().
|
static |
Helper metod. Returns sql table name for metadata object.
md | (in) - metadata tree object. |
context | (in) - node of metadata tree which represents metadata Class. |
References tableDbName().
|
static |
Returns sql table name for metadata object.
md | (in) - metadata tree object. |
context | (in) - node of metadata tree which represents metadata Class. |
tid | (out) - id of metadata Class. |
References aCfg::id(), aCfg::objClass(), and aCfg::parent().
Referenced by aIRegister::deleteDocument(), aIRegister::deleteTable(), aARegister::initObject(), aCatalogue::initObject(), aCatGroup::initObject(), aDocJournal::initObject(), aDocument::initObject(), aIRegister::initObject(), aExtSQL::SqlTableName(), and tableDbName().
bool aDatabase::tableExists | ( | const QString & | name | ) |
Checks table existence.
name | (in) - table name to check for. |
Referenced by table().
Q_ULLONG aDatabase::uid | ( | int | otype | ) |
Generates new unique id for system object.
otype | (in) - object type (e.g. document, catalog, journal etc.) |
References db(), driverName(), aLog::print(), and uid().
Referenced by markDeleted(), uid(), and uidType().
int aDatabase::uidType | ( | Q_ULLONG | uid | ) |
Returns type of object identified by its uid.
uid | (in) - object's uid. |
References db(), aLog::print(), and uid().
Referenced by aDocJournal::docType(), AExtMeta::GetBaseClassNameByObjectUid(), AExtMeta::GetClassNameByObjectUid(), aIRegister::GetDocument(), aObject::select(), and aObjectList::select().
bool aDatabase::update | ( | ) |
Helper method.
aCfg aDatabase::cfg |
metadata object
metadata object
Referenced by aForm::aForm(), aForm::aForm(), aObject::aObject(), aObjectList::aObjectList(), aWidget::aWidget(), AExtMeta::CountByClassName(), aObjectsFactory::create(), AExtMeta::DataTypes(), aIRegister::deleteDocument(), aIRegister::deleteTable(), AExtMeta::GetAttrType(), AExtMeta::GetAttrType(), AExtMeta::GetBaseClassName(), AExtMeta::GetBaseClassNameByObjectUid(), AExtMeta::GetClassName(), AExtMeta::GetClassNameByObjectUid(), AExtMeta::GetId(), AExtMeta::GetId(), aExtSERVICE::GetRcFileName(), aExtSERVICE::GetRcValue(), AExtMeta::GetUserFields(), AExtMeta::GetUserFields(), init(), init(), aEngine::init(), wDBTable::init(), wCatalogEditor::initCat(), aDocJournal::initObject(), aObject::initObject(), aObjectList::initObject(), aWidget::initObject(), wJournal::initObject(), aExtSQL::SqlFieldName(), and aExtSQL::SqlTableName().
QSqlDatabase* aDatabase::ddb |
link to database