Russian Qt Forum

Qt => Базы данных => Тема начата: johnpion от Сентябрь 07, 2012, 21:03



Название: Использование своей функции в qsqlite несколько раз в одном запросе
Отправлено: johnpion от Сентябрь 07, 2012, 21:03
Написал свою функцию. В драйвере добавил, что при открытии должна создаваться функция:
Код:
#include <QString>
#include <QObject>
#include <sqlite3.h>

static void moneyFunc(sqlite3_context *context, int argc, sqlite3_value **argv)
{
    int sum = sqlite3_value_int(argv[0]);
    int full = sum / 100;
    int dec = sum % 100;

    QString resultStr = QObject::tr("0,00");

    if (dec == 0){
        resultStr = QString(QObject::tr("%1,00")).arg(full);
    } else if (dec > 0 && dec < 10){
        resultStr = QString(QObject::tr("%1,0%2")).arg(full).arg(dec);
    } else if (dec >= 10 && dec <= 99){
        resultStr = QString(QObject::tr("%1,%2")).arg(full).arg(dec);
    }

    sqlite3_result_text(context, resultStr.toAscii().constData(), resultStr.size(), 0);
}

НО при запросе SELECT money(100), money(250) Выдает 3,50|3,50 а не 1,00|3,50 :(