Добавить порцию BLOB-данных

Синтаксические правила

q.prepare("AddBlob")  | q.prepare("AddBlob(?,?,?.?)");
q.bindValue( 0, 2 );
q.bindValue( 1, 3 );
q.bindValue( 2, ba );
q.bindValue( 3, 6 );

Описание

Функция добавляет порцию BLOB-данных в конец существующего BLOB-значения.

После выполнения q.prepare("AddBlob") необходимо привязать к этому запросу 4 параметра:

  • 0-й параметр – порядковый номер BLOB-столбца в строке таблицы (отсчет начинается с 0);

  • 1-й параметр – тип добавляемых BLOB-данных (произвольное число, выбирается и используется пользователем);

  • 2-й параметр – адрес буфера, в котором содержится добавляемая порция BLOB-данных (переменная типа QVariant::ByteArray);

  • 3-й параметр – размер добавляемой порции BLOB-данных (в байтах).

Возвращаемое значение

QSqlQuery::prepare() возвращают true в случае нормального завершения, и false при ошибках.

Пример

q.exec(Qstring("select blobcolumn from test;"));
q.first();
q.prepare( "AddBlob" );
// Заполнения буфера ba BLOB-данными

ba = QByteArray::duplicate("TESTSTRING", strlen("TESTSTRING"));

q.bindValue( 0, 1 );  //Номер BLOB-столбца (1)
q.bindValue( 2, ba ); //Адрес буфера с добавляемыми BLOB-данными
q.bindValue( 3, ba.size() ); //Размер порции добавляемых BLOB-данных
if ( !q.exec() )
{
   cout < <  q.lastError().driverText();
   return 1;
 }