Nie można przechowywać danych binarnych w sqlite za pomocą QT

Nie można zapisać wszystkich wartości danych binarnych w tabeli sqlite3 przy użyciu QT.

W tym celu utworzyłem kolumnę danych BLOB do przechowywania tabeli danych binarnych o nazwie logTable. Próbuję wstawić dane binarne do bufora binary_data [] z wartościami od 0x1 do 0xFF i od 0x00 do 0xFF i tak dalej do 1024 bajtów. Ale gdy wykonam zapytanie do przechowywania danych, tabela pokazuje tylko 0x1 do 0xFF, ale pozostały znak nie jest zapisywany (ponieważ następna wartość natychmiastowa to 0x00). Chcę przechowywać wszystkie wartości danych binarnych?

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;
}

po wykonaniu tego kodu wynik tabeli wynosi do 254 znaków podczas wysyłania z sqlite za pomocą

$ sqlite3 log.db

sqlite> .output try.txt

sqlite> select * from logTable;

$ ls -l try.txt

rozmiar to 406 bajtów