Russian Qt Forum

Qt => Базы данных => Тема начата: Pupil от Май 29, 2012, 13:01



Название: Работа с файлом напрямую при запросе из базы данных.
Отправлено: Pupil от Май 29, 2012, 13:01
Здравствуйте!

При запросе файла из хранилища blob прежде чем приступаю к работе с файлом - копирую файл на жёсткий диск.
Если возможно, то каким образом работать с файлом, не копируя его на жёсткий диск?

Код:
savePath = "/dir/";

    QFile fromFile(savePath);
    QString zaprosegg = "select file_column from files where id_file=" + currselect;
    QSqlQuery qry;

        if (qry.exec(zaprosegg) == false)
        return;
   
    qry.next();
    fromBlob = qry.record().value(QLatin1String("file_column")).toByteArray();
    fromFile.open(QIODevice::WriteOnly);
    fromFile.write(fromBlob);  {


Название: Re: Работа с файлом напрямую при запросе из базы данных.
Отправлено: Kurles от Май 29, 2012, 13:12
Смотря что ты  подразумеваешь под словом "работать".


Название: Re: Работа с файлом напрямую при запросе из базы данных.
Отправлено: Пантер от Май 29, 2012, 13:18
У тебя есть toByteArray, это и есть твой файл.


Название: Re: Работа с файлом напрямую при запросе из базы данных.
Отправлено: Pupil от Май 29, 2012, 14:09
Допустим, есть текстовый редактор у которого на входе
Код:
bool OpenTextFile (AnsiString FilePath);
как ей на вход подать ".toByteArray"?


Название: Re: Работа с файлом напрямую при запросе из ба
Отправлено: Пантер от Май 29, 2012, 14:14
Никак, если нет метода bool OpenTextBuffer (char *buf, size_t size);