PureBasic

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

Все

<- PreviousDatabaseRow() - Оглавление Database - SetDatabaseDouble()->