п п╩п╟я│я│ QDataSchema

Класс для работы со схемой базы данных. п÷п╬п╢я─п╬п╠п╫п╣п╣...

#include <qdataschema.h>

п÷п╬п╩п╫я▀п╧ я│п©п╦я│п╬п╨ я┤п╩п╣п╫п╬п╡ п╨п╩п╟я│я│п╟

п║п╦пЁп╫п╟п╩я▀

void verifyMessage (QString op, QString value, QString oldvalue)

п·я┌п╨я─я▀я┌я▀п╣ я┤п╩п╣п╫я▀

 QDataSchema (const QString ctype, const char *objname=0, QObject *owner=0)
 Создает и инициализирует новый объект.
 ~QDataSchema ()
 Закрывает соединение и освобождает ресурсы объекта.
QString objectName () const
void setObjectName (const QString &newname)
bool open (const QString &dbname, const QString &dbuser="", const QString &dbpass="", const QString &dbhost="localhost", int dbport=0)
 Открывает и инициализирует соединение с сервером базы данных.
bool open ()
 Открывает и инициализирует соединение с сервером базы данных.
void close ()
 Закрывает соединение с сервером базоы данных.
QSqlDatabase * db ()
bool databaseCreate (const QString &dbadmuser, const QString &dbadmpass)
 Создает новую базу данных.
bool databaseDrop (const QString &dbadmuser, const QString &dbadmpass)
 Удаляет базу данных с сервера.
int execList (const QStringList &query, bool inTransaction=false)
 Выполняет список последовательных запросов.
QDS_SQLTable * table (const QString &name=QString::null)
 Создает объект QSqlCursor для таблицы базы данных.
QString tableName (const QString &name)
QString tableNameStripPrefix (const QString &name)
QString nameSpace () const
 Возвращает пространство имен таблиц базы данных.
void setNameSpace (const QString &namesp)
 Устанавливает пространство имен таблиц базы данных.
bool tableExists (const QString &name)
 Проверка существования таблицы на сервере БД.
QDataSchemaDriverdriver ()
 Возвращает текущий драйвер базы данных.
void setDataDictionary (const QStringList &dd_new)
 Устанавливает словарь описания данных.
QStringList dataDictionary ()
 Возвращает словарь описания данных.
QStringList updateStructureQuery ()
 Возвращает список запросов для обновления БД.
QStringList verifyLog ()
 Возвращает список изменений в БД.
int verifyStructure ()
 Проверяет структуру текущей БД на соответствие описанной в метаданных.
int updateStructure ()
 Обновляет структуру таблиц на сервере.
virtual int databaseExport (const QString &filename)
 Выгружает информацию из базы данных.
virtual int databaseImport (const QString &filename, bool updateStruct=false)
 Загружает информацию в базу данных.

п·я┌п╨я─я▀я┌я▀п╣ я│я┌п╟я┌п╦я┤п╣я│п╨п╦п╣ я┤п╩п╣п╫я▀

static QStringList drivers ()
 Возвращает список доступных драйверов.
static bool isDriverAvailable (const QString &name)
 Проверка доступности драйвера по имени.
static QDataSchemaDrivercreateDriver (const QString ctype)
 Возвращает список доступных драйверов.

п≈п╟я┴п╦я┴п╣п╫п╫я▀п╣ я┤п╩п╣п╫я▀

void verifyLogRecord (QString op, QString value, QString oldvalue="")
 Регистрирует запись изменений в БД.
QString ddRecord (int idx, bool d_sql=false)
 Возвращает запись словаря по индексу.
int ddCount (const QString &etype, bool d_sql=false)
 Количество записей выбранного вида в словаре.
int ddIndex (const QString &etype, int num, bool d_sql=false)
 Возвращает индекс элемента словаря.
int ddIndex (const QString &etype, const QString &name, bool d_sql=false)
 Возвращает индекс элемента словаря.
int ddCountSub (int idx, const QString &etype, bool d_sql=false)
 Количество подчиненных записей выбранного вида в словаре.
int ddIndexSub (int idx, const QString &etype, int num, bool d_sql=false)
 Возвращает индекс подчиненного элемента словаря.
int ddIndexSub (int idx, const QString &etype, const QString &name, bool d_sql=false)
 Возвращает индекс подчиненного элемента словаря.
QString ddRecSection (const QString &rec, int secnum)
 Возвращает секцию записи элемента словаря.
QString ddRecType (const QString &rec)
 Возвращает тип записи элемента словаря.
QString ddRecName (const QString &rec)
 Возвращает имя записи элемента словаря.
void joinLists (QStringList &list, const QStringList &add)
 Добавляет один список строк к другому.
QStringList splitQString (const QString &div, const QString &str)
QString lowerQString (const QString &str)
QString trimmedQString (const QString &str)
int checkSqlError (QSqlQuery &query)
 Проверяет результат выполнения запроса.
QString fieldTypeSql (const QString &tdef)
 Возвращает описание записи поля словаря для активного сервера БД.
virtual int createSystables ()
 Создание системных таблиц.


п÷п╬п╢я─п╬п╠п╫п╬п╣ п╬п©п╦я│п╟п╫п╦п╣

Класс для работы со схемой базы данных.

Используется для поддержки синхронной структуры данных приложения и сервера базы данных. Структура данных приложения описывается в серверо-независимом контексте. В зависимости от конкретного сервера базы данных выбирается способ обновления структуры в том случае, если структура информации в приложении изменилась ( например, обновлена версия приложения ) и нам требуется обновить структуру базы данных, сохранив ранее введенную информацию.

в дополнение в таблицам, описанным в приложении, QDataSchema создает дополнительную таблицу словаря данных с именем dictionaryTableName() ( по умолчанию "dd" ) в которой хранится служебная информация о текущей структуре базы данных для максимально корректного обновления структуры.

Словарь создается автоматически со следующими параметрами:

   T=dd|Data dictionary|S
   F=id|Line number|I|0|0|
   F=value|Data value|C|250|0|
Последовательность работы с объектом:

  QDataSchema *qds;
  QString dbname = "qds",
          dbuser = "",
          dbpasswd = "",
          dbserver = "localhost";
  int dbport = 0;
  QStringList dd;

  qds = new QDataSchema( QDataSchema::CT_INTERNAL );
  // Application data schema description
  dd<<"D=QDS|Description|UTF-8|UID";
  dd<<"T=T1|Description|U";
  dd<<"F=F1|Description|I|0|0|PSN";
  dd<<"F=F2|Description|D|0|0|";
  dd<<"F=F3|Description|C|200|0|";
  dd<<"F=F3|Description|S|200|0|";
  dd<<"F=F4|Description|N|10|2|";
  dd<<"F=F5|Description|I|0|0|";
  dd<<"F=F2|Description|L|0|0|";
  dd<<"I=I1|Description|F2,F3|";
  dd<<"T=T2|Description|U";
  dd<<"F=F1|Description|I|0|0|PSN";
  dd<<"F=F2|Description|C|10|0|";

  qds->setDataDictionary( dd );
  if ( qds->init( dbname,dbuser,dbpasswd,dbserver,dbport ) )
  {
       if ( !qds->verifyStructure() ){
          // need to update
          printf("verify log:\n%s\n", ( const char * ) qds->verifyLog().join("\n") );
          printf("update structure query:\n%s\n", ( const char * ) qds->updateStructureQuery().join("\n") );
          qds->updateStructure();
       }
  } else printf("ERROR INIT DATABASE\n");

Класс QDataSchema нацелен на автоматическую поддержку актуальной структуры таблиц базы данных на SQL сервере при изменении в структуре базы данных приложения, использующего QDataSchema. QDataSchema использует описание структуры таблиц.

Существуют два описания структуры таблиц: 1) Структура таблиц на сервере базы данных 2) структура таблиц, загруженная приложением при инициализации класса.

Метод verifyStructure() проверяет соответствие этих двух структур и в случае расхождения составляет 3 списка различий:

На основе этих 3-х списков производится модификация структуры таблиц на сервере БД, в результате которой структуры синхронизируются.

структура таблиц представляет список строк следующего формата:

 * # Commentaries in (UTF-8)
 * # --- Data dictionary
 * # Name|Description|Charset|UID
 * D=DATASCHEMA|Description of the data schema|UTF-8|XXXCCCWWW
 * # --- Table
 * # Name | Descr | Type[A/S/U]| DBName|Flags
 * T=TableName|Table description|A|DBTable|
 * # --- Fields
 * # Name| Description|Type [D/C/N/I]|Length|Precision|
 * F=CURDATE|Current date|D|8|0|
 * #--- Indexes
 * # Name| Description |Unique [0/1]|Index fields|DBName
 * I=IDD|Index of ID|0|ID,DATE,DESCR(UPPER)|IDD
 * # END
 * 

п п╬п╫я│я┌я─я┐п╨я┌п╬я─(я▀)

QDataSchema::QDataSchema ( const QString  ct,
const char *  objname = 0,
QObject *  owner = 0 
)

Создает и инициализирует новый объект.

  • ct (in) Тип соединения с сервером данных.
  • objname (in) Имя объекта. Используется как имя соединения QSqldataBase.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ createDriver(), isDriverAvailable() п╦ QDataSchemaDriver::sqlDriverName().


п°п╣я┌п╬п╢я▀

bool QDataSchema::open ( const QString &  dbname,
const QString &  dbuser = "",
const QString &  dbpass = "",
const QString &  dbhost = "localhost",
int  dbport = 0 
)

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

п░я─пЁя┐п╪п╣п╫я┌я▀:
dbname (in) - Имя базы данных.
dbuser (in) - Имя пользователя сервера базы данныхю
dbpass (in) - Пароль пользователя сервера базы данныхю.
dbhost (in) - Адрес хоста сервера базы данныхю.
dbport (in) - Порт соединения сервера базы данныхю.
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
true если нет ошибок или false в случае возникновения ошибки.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db(), driver() п╦ open().

bool QDataSchema::open (  ) 

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

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
true если нет ошибок или false в случае возникновения ошибки.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db(), driver() п╦ execList().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ open().

QSqlDatabase * QDataSchema::db (  ) 

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Указатель на объект работы с сервером SQL.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ close(), databaseCreate(), databaseDrop(), databaseExport(), execList(), open(), setNameSpace(), table(), tableExists(), updateStructure() п╦ verifyStructure().

bool QDataSchema::databaseCreate ( const QString &  dbadmuser,
const QString &  dbadmpass 
)

Создает новую базу данных.

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

п░я─пЁя┐п╪п╣п╫я┌я▀:
dbadmuser (in) имя администратора сервера базы данных
dbadmpass (in) пароль администратора сервера базы данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
true - если операция выполнена успешно, false - не успешно.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db(), driver() п╦ execList().

bool QDataSchema::databaseDrop ( const QString &  dbadmuser,
const QString &  dbadmpass 
)

Удаляет базу данных с сервера.

Удаляется база данных с ранее установленным именем. Для удаления базы данных необходимо знать имя и пароль администратора сервера базы данных.

п░я─пЁя┐п╪п╣п╫я┌я▀:
dbadmuser (in) имя администратора сервера базы данных
dbadmpass (in) пароль администратора сервера базы данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
true - если операция выполнена успешно, false - не успешно.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db(), driver() п╦ execList().

int QDataSchema::execList ( const QStringList &  queryList,
bool  inTransaction = false 
)

Выполняет список последовательных запросов.

  • queryList (in) список строк запросов
  • inTransaction (in) выполнять в транзакции. Если true - выполняет список запросов в транзакции с автоматическим откатом в случае ошибки.
    п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
    0 - выполнено без ошибок, >0 - код ошибки Sql.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ checkSqlError() п╦ db().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ createSystables(), databaseCreate(), databaseDrop(), databaseImport(), open() п╦ updateStructure().

QDS_SQLTable * QDataSchema::table ( const QString &  name = QString::null  ) 

Создает объект QSqlCursor для таблицы базы данных.

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

п░я─пЁя┐п╪п╣п╫я┌я▀:
name (in) - имя таблицы в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
вновь созданный объект.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db() п╦ tableExists().

void QDataSchema::setNameSpace ( const QString &  namesp  ) 

Устанавливает пространство имен таблиц базы данных.

Операция выполняется только над закрытой базой данных.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db().

bool QDataSchema::tableExists ( const QString &  name  ) 

Проверка существования таблицы на сервере БД.

п░я─пЁя┐п╪п╣п╫я┌я▀:
name (in) - Иям таблицы для проверки.
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
true если таблица существует, false - не существует.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ createSystables(), table() п╦ verifyStructure().

QStringList QDataSchema::drivers (  )  [static]

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

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Список драйверов

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ createDriver() п╦ QDataSchemaDriver::sqlDriverName().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ isDriverAvailable().

bool QDataSchema::isDriverAvailable ( const QString &  name  )  [static]

Проверка доступности драйвера по имени.

  • name (in) имя драйвера
    п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
    true - драйвер доступен, false - не доступен.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ drivers().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ QDataSchema().

QDataSchemaDriver * QDataSchema::createDriver ( const QString  ctype  )  [static]

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

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Список драйверов

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ drivers() п╦ QDataSchema().

void QDataSchema::setDataDictionary ( const QStringList &  dd_new  ) 

Устанавливает словарь описания данных.

  • dd_new (in) Список описания структуры данных.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseImport().

QStringList QDataSchema::dataDictionary (  ) 

Возвращает словарь описания данных.

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Список описания структуры данных.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport() п╦ databaseImport().

QStringList QDataSchema::updateStructureQuery (  ) 

Возвращает список запросов для обновления БД.

Список запросов формируется при выполнении verifyStructure().

QStringList QDataSchema::verifyLog (  ) 

Возвращает список изменений в БД.

Список различий формируется при выполнении verifyStructure().

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Список различий.

int QDataSchema::verifyStructure (  ) 

Проверяет структуру текущей БД на соответствие описанной в метаданных.

Подготавливает информацию для последующего обновления.

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
0 - обновление не требуется, 1 - обновление требуется.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ db(), ddCount(), ddCountSub(), ddIndex(), ddIndexSub(), ddRecName(), ddRecord(), ddRecSection(), driver(), fieldTypeSql(), joinLists(), nameSpace(), QDataSchemaDriver::queryCreateIndex(), QDataSchemaDriver::queryCreateTable(), QDataSchemaDriver::queryDropIndex(), QDataSchemaDriver::queryDropTable(), tableExists() п╦ verifyLogRecord().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport() п╦ databaseImport().

int QDataSchema::updateStructure (  ) 

Обновляет структуру таблиц на сервере.

Обновление выполняется на основе информации, подготовленной при вызове verifyStructure(). Обновление структуры производится в транзакции ( если сервер базы данных поддерживает работу с транзакциями ).

п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
0 - нет ошибок, иначе - код ощибки.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ createSystables(), db() п╦ execList().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseImport().

int QDataSchema::databaseExport ( const QString &  filename  )  [virtual]

Выгружает информацию из базы данных.

п░я─пЁя┐п╪п╣п╫я┌я▀:
filename (in) имя файла обмена

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ checkSqlError(), dataDictionary(), db(), ddCount(), ddCountSub(), ddIndex(), ddIndexSub(), ddRecName(), ddRecord(), ddRecSection() п╦ verifyStructure().

int QDataSchema::databaseImport ( const QString &  filename,
bool  updateStruct = false 
) [virtual]

Загружает информацию в базу данных.

п░я─пЁя┐п╪п╣п╫я┌я▀:
filename (in) имя файла обмена
updateStruct (in) true - надо обновлять структуру, если она отличается от существующей, false - возвращать код ошибки

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ dataDictionary(), execList(), setDataDictionary(), updateStructure() п╦ verifyStructure().

void QDataSchema::verifyLogRecord ( QString  op,
QString  value,
QString  oldvalue = "" 
) [protected]

Регистрирует запись изменений в БД.

Вызывается при формировании списка различий при выполнении verifyStructure(). генерирует сигнал verifyMessage().

п░я─пЁя┐п╪п╣п╫я┌я▀:
op (in) операция: "+" - добавление, "-" - удаление "&" - изменение
value (in) новое значение измененяемого элемента словаря
oldvalue (in) старое значение измененяемого элемента словаря. Пустое для операций добавления и удаления.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecType().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ verifyStructure().

QString QDataSchema::ddRecord ( int  idx,
bool  d_sql = false 
) [protected]

Возвращает запись словаря по индексу.

п░я─пЁя┐п╪п╣п╫я┌я▀:
idx (in) индекс записи словаря"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
запись словаря.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddIndex(), ddIndexSub() п╦ verifyStructure().

int QDataSchema::ddCount ( const QString &  etype,
bool  d_sql = false 
) [protected]

Количество записей выбранного вида в словаре.

п░я─пЁя┐п╪п╣п╫я┌я▀:
etype (in) тип элемента словаря в виде "[T/D]"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
количество записей выбранного типа в словаре.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecType().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddIndex() п╦ verifyStructure().

int QDataSchema::ddIndex ( const QString &  etype,
int  num,
bool  d_sql = false 
) [protected]

Возвращает индекс элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
etype (in) тип элемента словаря в виде "[T/D]"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Индекс строки элемента с словаре.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecType().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddIndex() п╦ verifyStructure().

int QDataSchema::ddIndex ( const QString &  etype,
const QString &  name,
bool  d_sql = false 
) [protected]

Возвращает индекс элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
etype (in) тип элемента словаря в виде "[T/D]"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Индекс строки элемента с словаре.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddCount(), ddIndex(), ddRecName() п╦ ddRecord().

int QDataSchema::ddCountSub ( int  idx,
const QString &  etype,
bool  d_sql = false 
) [protected]

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

п░я─пЁя┐п╪п╣п╫я┌я▀:
idx (in) индекс главного элемента словаря, полученный вызовом функции ddIndex()
etype (in) тип элемента словаря в виде "[T/D]"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Количество подчиненных записей выбранного вида в словаре..

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecType().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddIndexSub() п╦ verifyStructure().

int QDataSchema::ddIndexSub ( int  idx,
const QString &  etype,
int  num,
bool  d_sql = false 
) [protected]

Возвращает индекс подчиненного элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
idx (in) индекс главного элемента словаря, полученный вызовом функции ddIndex()
etype (in) тип подчиненного элемента словаря в виде "[F/I]"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Индекс строки подчиненного элемента с словаре.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecType().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddIndexSub() п╦ verifyStructure().

int QDataSchema::ddIndexSub ( int  idx,
const QString &  etype,
const QString &  name,
bool  d_sql = false 
) [protected]

Возвращает индекс подчиненного элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
idx (in) индекс главного элемента словаря, полученный вызовом функции ddIndex()
etype (in) тип подчиненного элемента словаря в виде "[F/I]"
s_sql (in) используемый словарь false - пользовательский словарь (по умолчанию) true - словарь, хранимый в базе данных
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Индекс строки подчиненного элемента с словаре.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddCountSub(), ddIndexSub(), ddRecName() п╦ ddRecord().

QString QDataSchema::ddRecSection ( const QString &  rec,
int  secnum 
) [protected]

Возвращает секцию записи элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
rec (in) запись (строка) словаря
secnum (in) номер секции, начиная с 0. Секции разделены символом "|"
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Строка секции без начальных и конейных пробелов.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddRecName(), ddRecType(), fieldTypeSql() п╦ verifyStructure().

QString QDataSchema::ddRecType ( const QString &  rec  )  [protected]

Возвращает тип записи элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
rec (in) запись (строка) словаря
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Тип записи элемента словаря в виде [D/T/F/I/#].

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecSection().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ ddCount(), ddCountSub(), ddIndex(), ddIndexSub() п╦ verifyLogRecord().

QString QDataSchema::ddRecName ( const QString &  rec  )  [protected]

Возвращает имя записи элемента словаря.

п░я─пЁя┐п╪п╣п╫я┌я▀:
rec (in) запись (строка) словаря
п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
Имя записи элемента словаря.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecSection().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport(), ddIndex(), ddIndexSub(), fieldTypeSql() п╦ verifyStructure().

void QDataSchema::joinLists ( QStringList &  list,
const QStringList &  add 
) [protected]

Добавляет один список строк к другому.

п░я─пЁя┐п╪п╣п╫я┌я▀:
list (in) список, в который добавляются строки
add (in) список для добавления

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ verifyStructure().

int QDataSchema::checkSqlError ( QSqlQuery &  query  )  [protected]

Проверяет результат выполнения запроса.

Если была ошибка, она выводится на стандартный вывод.

  • query (in) запрос, выполненный ранее.
    п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
    0 - без ошибок, 1 - есть ошибка.

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ databaseExport() п╦ execList().

QString QDataSchema::fieldTypeSql ( const QString &  tdef  )  [protected]

Возвращает описание записи поля словаря для активного сервера БД.

  • tdef (in) Строка описание поля в терминах QDataSchema.
    п▓п╬п╥п╡я─п╟я┴п╟п╣я┌:
    Описание типа поля в терминах активного сервера данных.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ ddRecName(), ddRecSection(), driver() п╦ QDataSchemaDriver::fieldtype().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ createSystables() п╦ verifyStructure().

int QDataSchema::createSystables (  )  [protected, virtual]

Создание системных таблиц.

Создает таблицу словаря со структурой

 * dd_name (id int, value char(250))
 *

для хранения дополнительной информации о типах полей и индексов.

п÷п╣я─п╣п╨я─п╣я│я┌п╫я▀п╣ я│я│я▀п╩п╨п╦ driver(), execList(), fieldTypeSql(), QDataSchemaDriver::queryCreateTable() п╦ tableExists().

п≤я│п©п╬п╩я▄п╥я┐п╣я┌я│я▐ п╡ updateStructure().


п·п╠я┼я▐п╡п╩п╣п╫п╦я▐ п╦ п╬п©п╦я│п╟п╫п╦я▐ я┤п╩п╣п╫п╬п╡ п╨п╩п╟я│я│п╬п╡ п╫п╟я┘п╬п╢я▐я┌я│я▐ п╡ я└п╟п╧п╩п╟я┘:

п■п╬п╨я┐п╪п╣п╫я┌п╟я├п╦я▐ п©п╬ Библиотека QT для работы со схемой базы данных.. п÷п╬я│п╩п╣п╢п╫п╦п╣ п╦п╥п╪п╣п╫п╣п╫п╦я▐: Sat Jul 4 16:49:03 2009. п║п╬п╥п╢п╟п╫п╬ я│п╦я│я┌п╣п╪п╬п╧  doxygen 1.5.6