Получить информацию о записи выборки данных
Назначение
Метод GetAnswerInfo предоставляет информацию о структуре всей записи выборки данных или об отдельном её поле в виде ассоциированного массива.
Синтаксис
value {< объект Connect > | < объект Cursor >}.GetAnswerInfo([Number])
-
Number -
Порядковый номер столбца в записи выборки данных. Нумерация столбцов начинается с 1.
Если аргумент не задан, информация предоставляется обо всех столбцах записи выборки данных.
Возвращаемое значение
Ассоциированный массив атрибутов столбца записи выборки данных (таблицы 2, 3).
В следующих случаях имена столбцов не предоставляются:
-
если столбец в выборке имеет синоним (например,
select ... auto.model as "Модель") выдаются имя столбца или синоним; -
если значением столбца является выражение (например, функция
select sysdate;) или выражение (abs (x) + 67); -
если значением столбца является объединение (пересечение, исключение) значений нескольких запросов:
| Параметр | Описание |
|---|---|
User
| Имя владельца таблицы |
Table
| Имя таблицы |
Column
| Имя столбца |
Length
| Длина столбца |
Type
| Числовой идентификатор типа данных столбца (в спецификации СУБД ЛИНТЕР) |
Precision
| Точность (для числовых данных типа Numeric) |
Scale
| Масштаб (для данных типа Numeric) |
CharSet
| Идентификатор кодовой страницы |
| Параметр | Описание |
|---|---|
User
| Имя владельца таблицы |
Table
| Имя таблицы |
Column
| Имя столбца |
Length
| Длина столбца |
Type
| Тип данных столбца |
Size
| Размер BLOB-данных |
TypeObj
| Пользовательский тип BLOB-данных |
Index_Time
| Дата/время создания фразового индекса |
Пример
require "LinRuby"
begin
connect = LinterConnection.Create()
connect.Open("SYSTEM", "MANAGER8", nil, M_EXCLUSIVE | Q_ENCODE)
puts "connection to RDBMS Linter is successed"
connect.SQLExecuteDirect("select NAME, JOB, CITY from PERSON where FIRSTNAM='PHIL';")
i = 0
answer_info = connect.GetAnswerInfo()
if answer_info != nil
while ( i < answer_info.size )
puts "#{answer_info.keys[i]}"
j = 0
while ( j < answer_info.values[i].size )
puts "#{answer_info.values[i].keys[j]} = #{answer_info.values[i].values[j]}"
j = j + 1
end
i = i + 1
end
else
puts "Answer info is nil"
end
rescue = > error
puts error
ensure
if connect != nil
connect.Close()
end
end