从QByteArray获取文本数据

时间:2015-07-29 08:50:01

标签: qt postgresql qstring qbytearray

我有这样的问题: 我开发了一个简单的数据库(PostgreSql)。 它保留在列(列名:“ascii”)中的一个功能是从文件读取的大文本数据(2000行)(表中的数据类型是BYTEA)。 以下是我插入数据的代码示例:

QFile *asciiFile = new QFile(ui->ascii_lineEdit->text());
    asciiFile->open(QIODevice::ReadOnly);
    QByteArray asciiArray = asciiFile->readAll();
    qDebug() << asciiArray;

    QSqlQuery *sourceQuery = new QSqlQuery();
    sourceQuery->prepare("INSERT INTO source (image, image_material, archive, ascii, about) VALUES (:image, :image_material, :archive, :ascii, :about)");
    sourceQuery->bindValue(":image", graphArray.toBase64());
    sourceQuery->bindValue(":image_material", materialArray.toBase64());
    sourceQuery->bindValue(":archive", archiveArray.toBase64());
    sourceQuery->bindValue(":ascii", asciiArray.toBase64());
    sourceQuery->bindValue(":about", ui->about_textEdit->toPlainText());
    sourceQuery->exec();

再次,保留的列(“ascii”)的数据类型是BYTEA。 现在我尝试读取这些数据(接近2000行)并且它们也没有显示出来。 我尝试这种方法:

QByteArray asciiArray = QSqlQuery query = connector->getSourceAscii(item_id);
    query.next();
    QByteArray asciiArray = QByteArray::fromBase64(query.value("ascii").toByteArray());
    QString *result = new QString(asciiArray);
    qDebug() << *result;

它必须是数字行但我有这样的东西: 瓦特߇ķۇŽ燸wӇk{瓦特۝}; {X { ķ[KP {kxkx߾{ķ{瓦特ㇸ

我需要的线条的例子:
2490 0,21979421377182 4,826905205​​84583E-02
2491 0,226718083024025 4,33071963489056E-02

你有什么建议吗?感谢。

0 个答案:

没有答案