Добавить порцию 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; }