@johnpion

Как добавить свою функцию в qsqlitedriver?

Сделал функцию money(). Через .load в шелле работает. Сейчас пытаюсь впихнуть в qsqiltedriver. Падает при запросе SELECT money(100). Читал, что в open() нужно добавить sqlite3_create_fuction.

static void moneyFunc(
        sqlite3_context *context,
        int agrc,
        sqlite3_value **argv
        ){
    char *result = NULL;

    int sum = sqlite3_value_int(argv[0]);
    int full = sum / 100;
    int dec = sum % 100;

    if (dec == 0){
        snprintf(result, 8, "%d,00", full);
    } else if (dec > 0 && dec < 10){
        snprintf(result, 8, "%d,0%d", full, dec);
    } else if (dec >= 10 && dec <= 99){
        snprintf(result, 8, "%d,%d", full, dec);
    } else return;

    sqlite3_result_text(context, result, 8, 0);
}
  • Вопрос задан
  • 2523 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы