Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Добавление данных в столбцы BLOB

Добавление данных в столбцы BLOB

Техника INSERT INTO ... SELECT напрямую передает столбец BLOB В столбец BLOB. Как правило, если вам нужно добавить столбец BLOB как часть списка VALUES(), он должен конструироваться клиентским приложением с использованием функций и структур API. В приложениях DSQL такие данные обычно передаются в виде потоков (stream). Размер сегмента может быть проигнорирован везде, кроме приложений ESQL.

При этом если вы передаете в VALUES() данные для BLOB В виде текста, Firebird примет символьную строку в качестве ввода, например:

INSERT INTO ATABLE (BLOBMEMO)

VALUES ('Now is the time for all good men to come to the aid of the party');

Эта возможность будет подходящей при условии, что сохраняемый текст никогда не превысит 32 767 байтов (или 32 765, если вы помещаете поле VARCHAR в BLOB). Может показаться, что для многих интерфейсов программирования подобная проблема не существует, потому что они не могут обрабатывать такие большие строки. Однако, поскольку Firebird принимает выражения конкатенации строк SQL, такие как MYVARCHARI 11 MYVARCHAR2, следует принять меры по защите входных строк от переполнения.

Добавление в столбцы массивов

В приложениях со встроенным SQL (ESQL) возможно конструирование оператора SQL для добавления целого массива в столбец массива. Могут появиться ошибки, если данные не полностью заполняют массив.

В DSQL вовсе нет возможности добавлять данные в столбцы массивов. Необходимо реализовывать пользовательский метод в приложении или в коде компонента, который будет вызывать API-функцию isc_array_put_siice.

Оглавление книги


Генерация: 1.339. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз