Получить информацию о столбцах таблицы БД
Назначение
Метод SQLColumns
предоставляет информацию о столбцах таблицы БД.
Синтаксис
value {< объект Connect > | < объект Cursor >}.SQLColumns(UserName, TableName, ColumnName)
-
UserName
-
Шаблон имени владельца таблицы (может быть
nil
). Шаблон может содержать спецсимволы _ и % (см. документ «СУБД ЛИНТЕР. Справочник по SQL», конструкция «Предикат подобия»). -
TableName
-
Шаблон имени таблицы. Если шаблон не задан (указано
nil
), информация предоставляется обо всех таблицах данного пользователя. -
ColumnName
-
Шаблон имени столбца таблицы. Если шаблон не задан (указано
nil
), информация предоставляется обо всех столбцах таблицы (таблиц).
Возвращаемое значение
Объект Connection
(Cursor
). Возвращаемые записи можно получить с помощью функций SQLFetchRow
, SQLFetchHash
, SQLFetchManyRow
, SQLFetchManyHash
.
Структура возвращаемой записи:
Столбец записи | Описание | |
---|---|---|
TABLE_CAT
| Пробелы, char(66) | |
TABLE_SCHEM
| Схема объекта (имя владельца таблицы), char(66) | |
TABLE_NAME
| Имя таблицы, char(66) | |
COLUMN_NAME
| Имя столбца, char(66) | |
DATA_TYPE
| Числовой идентификатор типа данных столбца СУБД ЛИНТЕР:
| |
TYPE_NAME
| Название типа данных (см. поле DATA_TYPE, символьный идентификатор типа данных) | |
COLUMN_SIZE
| Возвращается для всех типов данных. Для типов данных с определяемой длиной (char, varchar, byte, varbyte, nchar, nvarchar) содержит максимальную длину значений столбца в символах | |
BUFFER_LENGTH
| Длина буфера данных, выделяемого для SQLFetchRow | |
DECIMAL_DIGITS
| Количество значимых чисел после точки | |
NUM_PREC_RADIX
| Подробнее см. документ «СУБД ЛИНТЕР. ODBC-драйвер» | |
NULLABLE
| Допускается или нет NULL-значение | |
REMARKS
| Комментарий к столбцу | |
COLUMN_DEF
| Значение столбца по умолчанию | |
SQL_DATA_TYPE
| Числовой идентификатор типа данных столбца по стандарту ODBC | |
SQL_DATETIME_SUB
| Код подтипа дат и промежуточных типов дат (по стандарту ODBC) | |
CHAR_OCTET_LENGTH
| Максимальная длина столбца в байтах (для всех типов данных) | |
ORDINAL_POSITION
| Порядковый номер столбца в таблице (нумерация начинается с 1) | |
IS_NULLABLE
| Значением столбца является NULL-значение |
Пример
require "LinRuby" begin connect = LinterConnection.Create() connect.Open("SYSTEM", "MANAGER8", nil, M_EXCLUSIVE | Q_866) puts "connection to RDBMS Linter is successed" connect.SQLColumns('SYSTEM', nil, nil) i = 1 while ( i < = connect.GetRowCount ) hash = connect.SQLFetchHash(FETCH_ABSNUM, i) j = 0 while ( j < hash.keys.size ) puts "#{hash.keys[j]} = #{hash.values[j]}" j = j +1 end i = i + 1 end rescue = > error puts error ensure if connect != nil connect.Close() end end