Доступные версии документации

Удаление BLOB-данных

Стандартный способ

Удалить BLOB-данные можно двумя способами:

  1. с помощью удаления всей записи, содержащей удаляемые BLOB-данные, соответствующим SQL-запросом delete (с последующим добавлением копии удаленной записи, но уже без BLOB-данных);

  2. с помощью присвоения удаляемым BLOB-данным NULL-значения соответствующим SQL-запросом update.

Удаление с помощью псевдозапроса
Синтаксические правила
BLOB CLEAR
[{ROWID=<rowid записи> [<имя схемы>.]<имя таблицы>.<имя столбца>
|COLUMN=<номер столбца>}]

Все имена в команде могут задаваться в двойных кавычках.

blob clear rowid=250 "Админ"."Авто"."Модель";
Описание

Опция ROWID задает внутренний идентификатор строки в таблице, к которой относится BLOB-команда. При её использовании требуется обязательное указание имени столбца таблицы (не выборки данных !) с указанием имени таблицы и опционально имени схемы.

Предварительное выполнение запроса для установления текущей записи не требуется.

q.exec("blob clear rowid=126 SYSTEM.test.b");

Если задана опция COLUMN, все операции с BLOB-данными применяются к указанному столбцу текущей записи последней выборки данных. Отсчет столбцов начинается с 1. Если опция не задана, по умолчанию используется первый BLOB-столбец выборки.

q.exec("select * from test;");
q.exec("blob clear column=3");

Примечание

В случае претрансляции запроса (псевдозапроса) существует возможность модифицировать его поведение путем привязки параметров. Это возможно только в случае операций над выборкой. На запрос с опцией ROWID привязка параметров не действует.

При использовании команды CLEAR возможна привязка нулевого параметра, в котором указывается номер столбца в выборке данных (отсчет начинается с 1). Без привязки этого параметра по умолчанию подразумевается первый BLOB-столбец выборки данных.

Опции можно также не задавать. В этом случае очищен будет первый BLOB-столбец в текущей записи выборки. Привязкой нулевого параметра можно в этом случае указать номер столбца в выборке последнего выполненного запроса.

q.prepare("blob clear");
q.bindValue(0, 2);
q.exec();
Удаление с помощью устаревшего метода

Удаление BLOB-данных возможно также с помощью устаревшего метода PurgeBlob (см. приложение). Поведение его аналогично псевдозапросу blob clear без опций.

Примечание

В случае претрансляции запроса (псевдозапроса) существует возможность модифицировать его поведение путем привязки параметров. Это возможно только в случае операций над выборкой. На запрос с опцией ROWID привязка параметров не действует.

В нулевом параметре можно задать номер столбца в текущей выборке данных с удаляемым BLOB-значением. Если параметр не привязан, по умолчанию используется первый столбец.

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter