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