Ananas Library
0.9.5
|
Предоставляет возможность использования SQL запросов в отчетах. Подробнее...
#include <aextsql.h>
Открытые слоты | |
QSqlSelectCursor * | Cursor () const |
Функция фозвращает внутренний курсор, содержащий результаты выполнения последнего вызова функции ExecQuery или ExecScalar. Подробнее... | |
QVariant | Value (int col) const |
int | Size () const |
Функция получения количества записей в результате. | |
int | Count () const |
Функция получения количества столбцов в результате. | |
bool | ExecQuery (const QString &query) |
Функция для выполнения sql запроса. Подробнее... | |
QVariant | ExecScalar (const QString &query) |
Эта функция похожа на описанную выше ExecQuery(),. Подробнее... | |
bool | First () |
Делает первую запись результата активной. Подробнее... | |
bool | Next () |
Делает следующую запись результата активной. Подробнее... | |
bool | Last () |
Делает последнюю запись результата активной. Подробнее... | |
bool | Prev () |
Делает предыдущую запись результата активной. Подробнее... | |
QString | SqlFieldName (aObject *obj, const QString &userFieldName, const QString &tableType="") const |
Возвращает sql имя поля по его пользовательскому имени. Подробнее... | |
QString | SqlTableName (aObject *obj, const QString &tableType="") const |
Возвращает SQL имя основной или вспомогательной таблицы объекта. Подробнее... | |
QString | SqlTableName (const QString &objName) const |
Еще не реализовано. | |
QString | SqlFieldName (const QString &fieldName) const |
Еще не реализовано. | |
QString | LastError () const |
Возвращает текстовое представление последней ошибки или пустую строку, если ошибок не было. Подробнее... | |
Открытые члены | |
aExtSQL () | |
Конструктор класса | |
virtual int | init (aDatabase *database) |
Функция иницализации, переопределяет функцию базового класса, создает внутренние объекты и переменные. | |
~aExtSQL () | |
Деструктор класса | |
![]() | |
AExtension (const char *name=0) | |
Additional Inherited Members | |
![]() | |
void | event (const QString &data) |
![]() | |
aDatabase * | db |
Предоставляет возможность использования SQL запросов в отчетах.
Пример использования. Код взят из модуля экранной формы отчета "Остатки товаров".
|
slot |
Функция фозвращает внутренний курсор, содержащий результаты выполнения последнего вызова функции ExecQuery или ExecScalar.
для использования в качестве источника данных для таблиц (QDataTable и т.д). Не удаляйте этот курсор после использования! \return Внутренний курсор.
|
slot |
Функция для выполнения sql запроса.
Поддерживается только выражение select. Если случилась ошибка, возвращается false. Для перемещения по результатам используйте функции First(), Next(), Prev(), Last(). Для получения сведений об ошибке - функцией LastError(). \param query (in) - Sql запрос для выполнения. \return true, если запрос выполнился без ошибок.
|
slot |
Эта функция похожа на описанную выше ExecQuery(),.
но возвращает не true или false, а значение первой ячейки первой строки результата или QVariant::Invalid, если не вернулось ни одной записи или случилась ошибка. Но если вы знаете, что в результате больше чем одна запись, вы можете перемещаться по ним используя функции First(), Next() и т.д. \param query (in) - Sql запрос для выполнения. \return Результат запроса или QVariant::Invalid
|
slot |
Делает первую запись результата активной.
Вы должны сначала вызвать ExecQuery, чтобы вызов этой функции имел смысл. \return true в случае успеха
|
slot |
Делает последнюю запись результата активной.
\return true в случае успеха
|
slot |
Возвращает текстовое представление последней ошибки или пустую строку, если ошибок не было.
Возвращается текст драйвера базы данных.
|
slot |
Делает следующую запись результата активной.
\return true в случае успеха
|
slot |
Делает предыдущую запись результата активной.
\return true в случае успеха
|
slot |
Возвращает sql имя поля по его пользовательскому имени.
К каждому объекту Ананаса пользователь может добавлять свои собственные пользовательские поля. К несчастью, когда вы генерируете SQL запрос, вы должны использовать sql-ные имена полей вместо пользовательских. Данная функция помогает делать это очень просто. Все что вам нужно - создать новый объект, который будет использоваться для получения имени, определить пользовательское имя поля и таблицу (основную или одну из запасных :). См SqlTableName() для детального описания имен и структуры таблиц. Кроме того, каждая таблица содержит системные поля для связи между объектами. Эти поля также могут быть использованы в запросе. См. документацию по каждому объекту Ананаса для детального описания. \param obj (in) - Объект Ананасаю Используется в качестве контекста поиска. \param userFieldName (in) - Пользовательское имя поля \param tableType (optional) - Тип таблицы. Для каталога таблица групп имеет синоним "group", для накопительного регистра каждая из таблиц остатков по измерению имеет сининим, совпадающий с пользовательским именем этого измерения. \return sql имя поля
Перекрестные ссылки aObject::table().
|
slot |
Возвращает SQL имя основной или вспомогательной таблицы объекта.
Все объекты Ананаса, за исключением Отчетов, хранят данные в sql таблицах. Для Каталога это таблица групп и таблица элементов (осн.), для документа - таблица шапки, для журнала - всегда системная таблица системного журнала, для ИРегистра - одна таблица для хранения всех данных, для АРегистра - одна основная таблица для хранения записей об операциях (осн.) и X вспомогательных для хранения остатков по разрезам, где X - количество измерений накопительного регистра. Так что если вы хотите получить имя основной таблицы объекта, не используйте параметр \atableType или установите его значение в "". Если вы хотите получить имя вспомогательной таблицы, установите параметру \atableType значение "group" для группы каталога или значение пользовательского имени измерения накопительного регистра для таблицы остатков по данному измерению. \param obj (in) - Объект для получения имени таблицы \param tableType (optional) - Тип таблицы \return sql имя таблицы @code var sql = new SQL(); var cat = new Catalogue("Goods"); sys.Message(0, sql.SqlTableName(cat)); //ce101 sys.Message(0, sql.SqlTableName(cat, "")); //ce101 sys.Message(0, sql.SqlTableName(cat, "group")); //cg105 var doc = new Document("Order"); sys.Message(0, sql.SqlTableName(doc)); //dh130 var journ = new Journal("main journal"); sys.Message(0, sql.SqlTableName(journ)); // a_journ var ireg = new IRegister("Info register")); sys.Message(0, sql.SqlTableName(ireg)); // ra303 var areg = new ARegister("Acc Register"); sys.Message(0, sql.SqlTableName(areg)); // ra330 sys.Message(0, sql.SqlTableName(areg),"Goods") //ra330_d445
Перекрестные ссылки aObject::table().
|
slot |
Функция получения значения столбца \acol текущей записи или QVariant::Invalid если случилачь ошибка или значение \acol меньше 0 или больше, чем количество столбцов в результате.
col | (in) - |