Получить порцию 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.