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