SetDatabaseBlob()
Синтаксис
SetDatabaseBlob(#Database , StatementIndex , *Buffer , BufferLength)
Описание
Устанавливает Blob (подготавливает бинарный файл) для следующего применения в функции DatabaseUpdate().
Параметры
#Database Номер указанной Базы Данных StatementIndex Индекс подставляемого параметра запроса, вместо которого при запуске функции DatabaseUpdate() будет использоваться Blob. Нумерация подставляемых параметров начинается с нуля. Синтаксис SQL для указания подставляемого параметра зависит от менеджера баз данных. Например, в SQLite и ODBC для этого параметра используется символ '?'. См. примеры, чтобы узнать, как это делается. *Buffer Адрес данных Блоба. BufferLength Размер данных Блоба в байтах.
Возвращаемое значение
Ничего.
Пример: SQLite, MySQL и ODBC
; SQLite, MySQL и ODBC используют один и тот же синтаксис для вставки Blob. Указателем на Blob является символ '?' ; ; Должна быть открыта база данных и таблица PHOTOS с 3 столбцами (BLOB, VARCHAR (255), BLOB) ; SetDatabaseBlob(0, 0, ?Picture, PictureLength) SetDatabaseBlob(0, 1, ?SmallPicture, SmallPictureLength) DatabaseUpdate(0, "INSERT INTO PHOTOS (picture, name, small_picture) values (?, 'my description', ?);") ; ; В функции DatabaseUpdate() есть два символа '?' указывающих на два BLOB. Нумерация символов '?' в ; функциях SetDatabaseBlob() (второй параметр) начинается с нуля, и Номера соответствуют этим символам ; встречающимся в запросе DatabaseUpdate(), если их считать слева направо и не всегда совпадают с Номерами столбцов. ;
Пример: PostgreSQL
; PostgreSQL использует другой синтаксис: символы $ 1, $ 2... вместо '?' в запросе, в качестве подставляемого параметра ; ; Должна быть открыта база данных и таблица PHOTOS с 3 столбцами (BLOB, VARCHAR (255), BLOB) ; SetDatabaseBlob(0, 0, ?Picture, PictureLength) SetDatabaseBlob(0, 1, ?SmallPicture, SmallPictureLength) DatabaseUpdate(0, "INSERT INTO PHOTOS (picture, name, small_picture) values ($1, 'my description', $2);")
Примечание: PostgreSQL использует BYTEA для хранения Blob (двоичных файлов, например фотографий). Экранирование, необходимое для хранения двоичных данных в таком столбце, делает его часто больше, чем ожидалось. Хороший способ хранить двоичные данные - закодировать их с помощью Base64Encoder() перед отправкой в диспетчер баз данных.
См. также
DatabaseUpdate(), GetDatabaseBlob()
Поддерживаемые OS
Все