|
Ananas Library
0.9.5
|
Класс для работы с СУБД. Ananas Data Abstraction Layer. Наследует QObject. Подробнее...
#include <adatabase.h>
Открытые типы | |
| 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 } |
| Перечисление поддерживаемых типов баз данных. По состоянию на 20070630 реализована поддержка для mysql и postgresql. Подробнее... | |
| enum | dbServer { unknown, mysql, postgresql, odbc, oracle, mssql, sybase, unknown, mysql, postgresql, odbc, oracle, mssql, sybase } |
Сигналы | |
| void | refresh () |
Открытые члены | |
| aDatabase () | |
| ~aDatabase () | |
| bool | init (aCfgRc *rc, const QString &dbname=QString::null) |
| Открывает соединение с базой данных на SQL сервере или создает базу данных. Подробнее... | |
| 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) |
| Инициализирует драйвер sql соединения. Подробнее... | |
| 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 | 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 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) |
Открытые атрибуты | |
| aCfg | cfg |
| Объект для работы с метаданными бизнес схемы Ананаса. Подробнее... | |
| QDataSchema * | qds |
| QSqlDatabase * | ddb |
Защищенные члены | |
| void | timerEvent (QTimerEvent *) |
Класс для работы с СУБД. Ananas Data Abstraction Layer. Наследует QObject.
Обеспечивает унифицированный программный интерфейс доступа к данным, независимый от используемой СУБД. Используется для работы с базой данных в контексте бизнес схемы.
| enum aDatabase::dbServer |
Перечисление поддерживаемых типов баз данных. По состоянию на 20070630 реализована поддержка для mysql и postgresql.
| enum aDatabase::dbServer |
перечисление типов баз данных
| aDatabase::aDatabase | ( | ) |
Конструктор без параметров.
| aDatabase::~aDatabase | ( | ) |
Деструктор.
Перекрестные ссылки done().
| bool aDatabase::checkStructure | ( | ) |
проверяет структуру базы данных.
проверяет структуру базы данных. Не реализована.
| bool aDatabase::create | ( | ) |
Вспомогательный метод. Создает новую базу данных.
| QSqlDatabase * aDatabase::db | ( | const QString & | dbname = QString::null | ) |
Возвращает ссылку на соединение с базой данных.
| dbname | (in) - имя базы данных |
Возвращает ссылку на соединение с базой данных.
| dbname | (in) - имя базы данных. |
Используется в aARegister::deleteDocument(), aIRegister::deleteDocument(), deleteMarked(), aIRegister::deleteTable(), done(), driverName(), aDocJournal::getPrefix(), aARegister::getSaldo(), aARegister::getSaldoByManyDimensions(), aExtSQL::init(), init(), aARegister::insert_values(), aDocument::IsSignedIn(), markDeleted(), aDocJournal::nextNumber(), aARegister::recalculate_saldo(), aCatGroup::SetParent(), aDocument::TableNewLine(), uid(), uidType() и aARegister::update_values().
| void aDatabase::deleteMarked | ( | ) |
| void aDatabase::done | ( | ) |
Закрывает соединение с базой данных и освобождает все занятые ресурсы.
Перекрестные ссылки db().
Используется в prepareDatabaseConnect() и ~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 |
||
| ) |
Открывает соединение с базой данных на SQL сервере или создает базу данных.
Если БД не удалось открыть, метод пытается создать базу данных на SQL сервере, используя переданные параметры соединения с SQL сервером. При этом создается пустая база данных без таблиц и других элементов.
| rc | (in) - ссылка на инициализированный объект, хранящий данные файла ресурсов, необходимые для установления соединения. Проще говоря, объект с параметрами соединения. |
| dbname | (in) - не используется |
Создает базу данных на SQL сервере. Читает переданный файл ресурса и создает соединение с сервером баз данных. После этого создает базу данных с параметрами, заданными в файле ресурса.
| rc | (in) - ссылка на файл ресурса |
| dbname | (in) - не используется |
Перекрестные ссылки db(), prepareDatabaseConnect(), aLog::print() и aCfgRc::value().
Используется в init() и 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 |
Перегружет метод init( aCfgRc *rc, const QString &dbname ) и использует его.
| rcname | (in) - имя файла ресурсов, содержащего параметры соединения с базой данных. |
| dbname | (in) - имя базы данных. (не используется, берется из файла ресурсов) |
Перегружет метод init( aCfgRc *rc, const QString &dbname )
| rcname | (in) - имя файла ресурса |
| dbname | (in) - имя базы данных |
Перекрестные ссылки init() и aCfg::readrc().
| void aDatabase::markDeleted | ( | Q_ULLONG | uid | ) |
Устанавливает флаг удаления в true в системной таблице для заданного uid
| uid | - id для пометки на удаление |
Перекрестные ссылки db().
Используется в aDocument::Copy(), aDocument::Delete(), aObject::Delete(), aDocJournal::deleteDocument(), aDocument::New() и aDocument::TableDelete().
| bool aDatabase::prepareDatabaseConnect | ( | aCfgRc * | dbParams | ) |
Инициализирует драйвер sql соединения.
Для инициализации используются параметры из файла ресурсов бизнес схемы.
| dbParams | - объект хранящий данные файла ресурсов. |
Перекрестные ссылки done() и aCfgRc::value().
Используется в 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. |
Перекрестные ссылки tableExists().
Используется в aObject::tableInsert().
|
static |
Возвращает имя sql таблицы для объекта метаданных.
| md | (in) - дерево метаданных. |
| context | (in) - объект метаданных |
| tid | (out) - идентификатор объекта метаданных, которому принадлежит таблица |
Перекрестные ссылки aCfg::id(), aCfg::objClass() и aCfg::parent().
Используется в aIRegister::deleteDocument(), aIRegister::deleteTable(), aCatalogue::initObject(), aARegister::initObject(), aIRegister::initObject(), aDocJournal::initObject(), aDocument::initObject(), aCatGroup::initObject(), aExtSQL::SqlTableName() и tableDbName().
|
static |
Вспомогательный метод. Возвращает имя sql таблицы для объекта метаданных.
| md | (in) - дерево метаданных. |
| context | (in) - объект метаданных |
Перекрестные ссылки tableDbName().
| bool aDatabase::tableExists | ( | const QString & | name | ) |
Проверяет, существует ли таблица в базе данных.
| name | (in) - имя проверяемой таблицы |
Используется в table().
| Q_ULLONG aDatabase::uid | ( | int | otype | ) |
Генерирует новый уникальный номер. Эти номера являются невосполнимым ресурсом системы.
| otype | (in) - тип объекта |
Перекрестные ссылки db(), driverName() и aLog::print().
| int aDatabase::uidType | ( | Q_ULLONG | uid | ) |
Возвращает тип объекта по его идентификатору.
| uid | (in) - уникальный идентификатор объекта |
Перекрестные ссылки db() и aLog::print().
Используется в aDocJournal::docType(), AExtMeta::GetBaseClassNameByObjectUid(), AExtMeta::GetClassNameByObjectUid(), aIRegister::GetDocument(), aObjectList::select() и aObject::select().
| bool aDatabase::update | ( | ) |
Вспомогательный метод. Обновляет структуру базы данных.
| aCfg aDatabase::cfg |
Объект для работы с метаданными бизнес схемы Ананаса.
метаданные
Используется в aForm::aForm(), aObject::aObject(), aObjectList::aObjectList(), aWidget::aWidget(), AExtMeta::CountByClassName(), aObjectsFactory::create(), AExtMeta::DataTypes(), aIRegister::deleteDocument(), aIRegister::deleteTable(), AExtMeta::GetAttrType(), AExtMeta::GetBaseClassName(), AExtMeta::GetBaseClassNameByObjectUid(), AExtMeta::GetClassName(), AExtMeta::GetClassNameByObjectUid(), AExtMeta::GetId(), aExtSERVICE::GetRcFileName(), aExtSERVICE::GetRcValue(), AExtMeta::GetUserFields(), wDBTable::init(), aEngine::init(), wCatalogEditor::initCat(), wJournal::initObject(), aWidget::initObject(), aDocJournal::initObject(), aObjectList::initObject(), aObject::initObject(), aExtSQL::SqlFieldName() и aExtSQL::SqlTableName().
| QSqlDatabase* aDatabase::ddb |
ссылка на базу данных
1.8.5