Есть сервер БД. Есть к нему драйвер ODBC.
В настройках драйвера ODBC есть возможность выставить кодировки в которой хранится база, в которой хочешь получать ответ на запрос и отсылать сам запрос. Пока пришел к мнению, что косячит драйвер - эти настройки в нем не действуют.
Чтобы получить данные в читаемом виде приходится выполнять такую процедуру:
    QTextCodec *codec = QTextCodec::codecForName("CP866");
    QSqlQuery q;
    if (!q.exec("select nmbr, var_name, help from defaults;")) {
       qDebug() << "   error #: " << qr.lastError().number();
       qDebug() << "descr (db): " << qr.lastError().databaseText();
       qDebug() << "descr (qt): " << qr.lastError().driverText();
       return 1;
    }
    while (qr.next()) {
       qDebug() << "nmbr: " << qr.value(0) << "variable: " << qr.value(1) << "=" << codec->toUnicode(qr.value(2).toByteArray());
    }
Драйвер закрытый. Срок поддержки давно истек.
Мы не работали с ODBC версией, потому вопросов не возникало.
Можно ли, малой кровью, научить qt отдавать результаты и отсылать запросы в нужной кодировке? Другие варианты?