Получить информацию о записи выборки данных
Назначение
Метод 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