Получить порцию BLOB-данных
Назначение
Метод GetBlob
возвращает массив, содержащий BLOB-данные текущей записи последней выборки данных в заданном соединении (курсоре).
Синтаксис
value {< объект Connect > | < объект Cursor >}.GetBlob([Start, Length, Number])
-
Start
-
Начало требуемой порции BLOB-данных (смещение порции данных задается в байтах, отсчет начинается с 1).
-
Length
-
Размер требуемой порции в байтах.
-
Number
-
Порядковый номер столбца в записи выборки данных. Нумерация начинается с 1.
Если метод вызывается без параметров, результат будет представлять собой массив, содержащий BLOB-данные всех столбцов максимальной доступной длины.
В случае, когда метод вызывается с одним параметром, результат будет представлять собой массив, содержащий BLOB-данные всех столбцов, при этом данные извлекаются с указанной позиции.
Если метод вызывается с двумя параметрам, результат будет представлять собой массив, содержащий BLOB-данные всех столбцов, извлеченные с указанной позиции (допустимо использование
nil
) и заданной длины.Если метод вызывается с тремя параметрами, то результатом является массив, содержащий BLOB-данные указанного столбца, извлеченные с указанной позиции (допустимо использование
nil
) и заданной длины (допустимо использованиеnil
).
Возвращаемое значение
Массив, содержащий BLOB-данные одного или нескольких столбцов.
Пример
require "LinRuby" begin connect = LinterConnection.Create() connect.Open("SYSTEM", "MANAGER8", nil, M_AUTOCOMMIT) puts "connection to RDBMS Linter is successed" begin connect.SQLExecuteDirect("DROP TABLE testBlob;") rescue end connect.SQLExecuteDirect("CREATE TABLE testBlob(ID INT, B1 BLOB);") puts "creating table testBlob is successed" blob_data = "BLOB_VALUE" connect.SQLExecuteDirect("insert into testBlob(B1) values (NULL);") connect.SQLExecuteDirect("SELECT B1 FROM testBlob;") connect.AddBlob(blob_data) puts "adding blob data is successed" connect.SQLExecuteDirect("SELECT * FROM testBlob;") value = connect.GetBlob(1)[0] if value != blob_data puts "error : result value of 'B1' blob column is #{value}, expected #{ blob_data }\n" else puts "getting blob data is successed" end connect.SQLExecuteDirect("DROP TABLE testBlob;") rescue = > error puts error ensure if connect != nil connect.Close() connect.Free() end end
См. также пример в методе AddBlob
.