Класс aDatabase

Класс для работы с СУБД. Ananas Data Abstraction Layer. Наследует QObject. Подробнее...

#include <adatabase.h>

Полный список членов класса

Открытые типы

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
}

Открытые члены

 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)
aDataTabletable (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)
bool transaction ()
bool commit ()
bool rollback ()
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)
aDataTabletable (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 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
 Объект для работы с метаданными бизнес схемы Ананаса.
QSqlDatabase * ddb


Подробное описание

Класс для работы с СУБД. Ananas Data Abstraction Layer. Наследует QObject.

Обеспечивает унифицированный программный интерфейс доступа к данным, независимый от используемой СУБД. Используется для работы с базой данных в контексте бизнес схемы.


Перечисления

Перечисление поддерживаемых типов баз данных. По состоянию на 20070630 реализована поддержка для mysql и postgresql.

Элементы перечислений:
unknown  Неизвестный драйвер (не поддерживается)
mysql  MySQl драйвер
postgresql  PostgreSQL драйвер
odbc  ODBC драйвер (не поддерживается)
oracle  Oracle драйвер (не поддерживается)
mssql  MSSQL драйвер (не поддерживается)
sybase  Sybase драйвер (не поддерживается)
unknown  Неизвестный драйвер (не поддерживается)
mysql  MySQl драйвер
postgresql  PostgreSQL драйвер
odbc  ODBC драйвер (не поддерживается)
oracle  Oracle драйвер (не поддерживается)
mssql  MSSQL драйвер (не поддерживается)
sybase  Sybase драйвер (не поддерживается)

перечисление типов баз данных

Элементы перечислений:
unknown  Неизвестный драйвер (не поддерживается)
mysql  MySQl драйвер
postgresql  PostgreSQL драйвер
odbc  ODBC драйвер (не поддерживается)
oracle  Oracle драйвер (не поддерживается)
mssql  MSSQL драйвер (не поддерживается)
sybase  Sybase драйвер (не поддерживается)
unknown  Неизвестный драйвер (не поддерживается)
mysql  MySQl драйвер
postgresql  PostgreSQL драйвер
odbc  ODBC драйвер (не поддерживается)
oracle  Oracle драйвер (не поддерживается)
mssql  MSSQL драйвер (не поддерживается)
sybase  Sybase драйвер (не поддерживается)


Конструктор(ы)

aDatabase::aDatabase (  ) 

Конструктор без параметров.

aDatabase::~aDatabase (  ) 

Деструктор.


Методы

bool aDatabase::init ( aCfgRc rc,
const QString &  dbname = QString::null 
)

Открывает соединение с базой данных на SQL сервере или создает базу данных.

Если БД не удалось открыть, метод пытается создать базу данных на SQL сервере, используя переданные параметры соединения с SQL сервером. При этом создается пустая база данных без таблиц и других элементов.

Аргументы:
rc (in) - ссылка на инициализированный объект, хранящий данные файла ресурсов, необходимые для установления соединения. Проще говоря, объект с параметрами соединения.
dbname (in) - не используется
Возвращает:
frue, если не было ошибок
См. также:
init( const QString &rcname, const QString &dbname )
Создает базу данных на SQL сервере. Читает переданный файл ресурса и создает соединение с сервером баз данных. После этого создает базу данных с параметрами, заданными в файле ресурса.

См. также:
init( const QString &rcname, const QString &dbname )
Аргументы:
rc (in) - ссылка на файл ресурса
dbname (in) - не используется
Возвращает:

Перекрестные ссылки driverName(), prepareDatabaseConnect(), aLog::print() и aCfgRc::value().

Используется в aEngine::init() и 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
Возвращает:
true, if no error /_en /ru Вспомогательный метод для установления соединения с БД на SQL сервере или ее создания. Перегружет метод init( aCfgRc *rc, const QString &dbname ) и использует его.
Аргументы:
rcname (in) - имя файла ресурсов, содержащего параметры соединения с базой данных.
dbname (in) - имя базы данных. (не используется, берется из файла ресурсов)
Возвращает:
true, если файл ресурсов успешно прочитан, false - в противном случае. /_ru
Перегружет метод init( aCfgRc *rc, const QString &dbname )

См. также:
init( aCfgRc *rc, const QString &dbname )
Аргументы:
rcname (in) - имя файла ресурса
dbname (in) - имя базы данных
Возвращает:
true, если ошибок не было

Перекрестные ссылки cfg, init(), aCfg::rc и aCfg::readrc().

bool aDatabase::prepareDatabaseConnect ( aCfgRc dbParams  ) 

Инициализирует драйвер sql соединения.

Для инициализации используются параметры из файла ресурсов бизнес схемы.

Аргументы:
dbParams - объект хранящий данные файла ресурсов.
Возвращает:
true, если драйвер успешно инициализирован. false, если возникла ошибка.

Перекрестные ссылки db(), done(), driverName(), aLog::print() и aCfgRc::value().

Используется в init().

void aDatabase::done (  ) 

Закрывает соединение с базой данных и освобождает все занятые ресурсы.

Перекрестные ссылки db().

Используется в prepareDatabaseConnect().

QSqlDatabase * aDatabase::db ( const QString &  dbname = QString::null  ) 

Возвращает ссылку на соединение с базой данных.

Аргументы:
dbname (in) - имя базы данных
Возвращает:
соединение с базой данных. Возвращаемый объект удалять не следует.
Возвращает ссылку на соединение с базой данных.

Аргументы:
dbname (in) - имя базы данных.
Возвращает:
соединение с базой данных

Используется в aIRegister::deleteDocument(), aARegister::deleteDocument(), deleteMarked(), aIRegister::deleteTable(), done(), driverName(), aDocJournal::getPrefix(), aARegister::getSaldo(), aARegister::getSaldoByManyDimensions(), aExtSQL::init(), aARegister::insert_values(), aDocument::IsSignedIn(), markDeleted(), aDocJournal::nextNumber(), prepareDatabaseConnect(), aARegister::recalculate_saldo(), aCatGroup::SetParent(), tableExists(), aDocument::TableNewLine(), uid(), uidType() и aARegister::update_values().

bool aDatabase::checkStructure (  ) 

проверяет структуру базы данных. Не реализована.

Возвращает:
true, если база данных коррестна
проверяет структуру базы данных. Не реализована.

Возвращает:
true, если база данных коррестна

bool aDatabase::create (  ) 

Вспомогательный метод. Создает новую базу данных.

См. также:
createdb()

bool aDatabase::update (  ) 

Вспомогательный метод. Обновляет структуру базы данных.

См. также:
createdb()

Q_ULLONG aDatabase::uid ( int  otype  ) 

Генерирует новый уникальный номер. Эти номера являются невосполнимым ресурсом системы.

Аргументы:
otype (in) - тип объекта
Возвращает:
новый сгенерированный номер

Перекрестные ссылки db(), driverName() и aLog::print().

int aDatabase::uidType ( Q_ULLONG  uid  ) 

Возвращает тип объекта по его идентификатору.

См. также:
uid( int otype )
Аргументы:
uid (in) - уникальный идентификатор объекта
Возвращает:
тип объекта

Перекрестные ссылки db() и aLog::print().

Используется в aDocJournal::docType(), aIRegister::GetDocument() и aObject::select().

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.
Возвращает:
newly created object.

Перекрестные ссылки tableExists().

Используется в aObject::tableInsert().

bool aDatabase::tableExists ( const QString &  name  ) 

Проверяет, существует ли таблица в базе данных.

Аргументы:
name (in) - имя проверяемой таблицы
Возвращает:
true, если таблица существует

Перекрестные ссылки db().

Используется в table().

void aDatabase::markDeleted ( Q_ULLONG  uid  ) 

Устанавливает флаг удаления в true в системной таблице для заданного uid

См. также:
deleteMarked()
Аргументы:
uid - id для пометки на удаление

Перекрестные ссылки db().

Используется в aDocument::Copy(), aObject::Delete(), aDocument::Delete(), aDocJournal::deleteDocument(), aDocument::New() и aDocument::TableDelete().

void aDatabase::deleteMarked (  ) 

Удаляет все помеченные записи.

См. также:
markDeleted(Q_ULLONG uid)

Перекрестные ссылки db().

QString aDatabase::driverName (  ) 

Возвращает имя драйвера базы данных. Переводит имя для драйвера MySQL с поддержкой utf8 в стандартное имя.

Возвращает:
имя драйвера.
Возвращает имя драйвера базы данных. Переводит имя для драйвера MySQL с поддержкой utf8 в стандартное имя.

Возвращает:
имя драйвера.

Перекрестные ссылки db().

Используется в init(), prepareDatabaseConnect() и uid().

QStringList aDatabase::getUniqueIndices ( const QString &  flddefs  )  [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
Возвращает:
list of string in form 'U'<num>'1('<field-list>')'
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)

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
Возвращает:
list of string in form 'U'<num>'1('<field-list>')'
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)

QString aDatabase::tableDbName ( aCfg md,
aCfgItem  context,
long *  tid 
) [static]

Возвращает имя sql таблицы для объекта метаданных.

См. также:
tableDbName( aCfg &md, aCfgItem context, long * tid )
Аргументы:
md (in) - дерево метаданных.
context (in) - объект метаданных
tid (out) - идентификатор объекта метаданных, которому принадлежит таблица
Возвращает:
имя таблицы в базе данных

Перекрестные ссылки aCfg::id(), aCfg::objClass() и aCfg::parent().

Используется в aIRegister::deleteDocument(), aIRegister::deleteTable(), aIRegister::initObject(), aDocument::initObject(), aDocJournal::initObject(), aCatGroup::initObject(), aCatalogue::initObject(), aARegister::initObject(), aExtSQL::SqlTableName() и tableDbName().

QString aDatabase::tableDbName ( aCfg md,
aCfgItem  context 
) [static]

Вспомогательный метод. Возвращает имя sql таблицы для объекта метаданных.

См. также:
tableDbName( aCfg &md, aCfgItem context, long * tid )
Аргументы:
md (in) - дерево метаданных.
context (in) - объект метаданных
Возвращает:
имя таблицы в базе данных

Перекрестные ссылки tableDbName().


Данные класса

QSqlDatabase* aDatabase::ddb

ссылка на базу данных


Объявления и описания членов классов находятся в файлах:

Документация по Ananas Library. Последние изменения: Mon Jul 14 11:53:55 2008. Создано системой  doxygen 1.5.5