Não é possível armazenar dados binários em sqlite usando QT

Não é possível armazenar todos os valores de dados binários na tabela sqlite3 usando QT.

Para isso eu criei uma coluna de dados BLOB para armazenar a tabela de dados binários nomeada como logTable. Eu estou tentando inserir dados binários para buffer binary_data [], com valores como 0x1 para 0xFF e 0x00 para 0xFF e assim por diante até 1024 bytes. Mas quando eu executo a consulta para armazenar os dados, a tabela mostra apenas 0x1 a 0xFF, mas os caracteres restantes não são armazenados (desde que o próximo valor imediato é 0x00). Eu quero armazenar todos os valores de dados binários?

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    conect_to_log_db("./log.db");

    unsigned char binary_data[1024];

    for(unsigned int i = 0, value = 1; i < 1024; i++, value++)
    {
        binary_data[i] = value;
    }
    store_to_log_db("01/02/2012,13:03:58", binary_data, 1024);
    ......
}


bool store_to_log_db(QString dateTime, unsigned char *data, unsigned int dataLength)
{
    QSqlQuery objQuery(objLogsDB);

    QString query = "CREATE TABLE IF NOT EXISTS logTable(logDateTime VARCHAR(19), packet BLOB, direction INTEGER)";
    objQuery.exec(query);

    QByteArray dataArr;
    dataArr.resize(dataLength);
    for(unsigned int i = 0; i < dataLength; i++)
    {
        dataArr[i] = data[i];
    }

    QVariant blobData = dataArr.data();

    objQuery.prepare("INSERT INTO logTable VALUES(:logDateTime,:packet,:direction)");
    objQuery.bindValue(":logDateTime",dateTime);
    objQuery.bindValue(":packet",blobData,QSql::In | QSql::Binary);
    objQuery.bindValue(":direction",1);

    qDebug() << objQuery.exec();

    return true;
}

depois de executar este código, o resultado da tabela é até 254 caracteres quando eu saio do sqlite usando

$ sqlite3 log.db

sqlite> .output try.txt

sqlite> select * da logTable;

$ ls -l try.txt

tamanho é 406 bytes

questionAnswers(1)

yourAnswerToTheQuestion