Получить информацию о табличных объектах БД

Назначение
 

Метод SQLTables предоставляет информацию о табличных объектах БД.

Синтаксис
value {< объект Connect > | < объект Cursor >}.SQLTables(UserName, TableName, TableType)
UserName

Шаблон имени владельцев объектов. Шаблон может содержать спецсимволы _ и % (см. документ «CУБД ЛИНТЕР. Справочник по SQL», конструкция «Предикат подобия»).

TableName

Шаблон имени искомых объектов.

TableType

Символьная строка, содержащая список типов искомых объектов (объекты поиска перечисляются через запятую):

  • TABLE – пользовательская таблица;

  • SYSTEM TABLE – системная таблица;

  • VIEW – представление;

  • SYNONIM – синоним таблиц.

Возвращаемое значение

Объект Connection (Cursor). Результат можно получить с помощью функций SQLFetchRow, SQLFetchHash, SQLFetchManyRow, SQLFetchManyHash.

Структура возвращаемой записи:

Столбец записи Описание
TABLE_TYPE Тип объекта, char(66)
REMARKS Комментарий к объекту (при его наличии в таблице $$$COMMENTS БД)
TABLE_CAT Пробелы, char(66)
TABLE_SCHEM Схема объекта (имя владельца объекта), char(66)
TABLE_NAME Имя объекта, char(66)
Пример
require "LinRuby"

begin
  connect = LinterConnection.Create()
  connect.Open("SYSTEM", "MANAGER8", nil, M_EXCLUSIVE | Q_866)
  puts "connection to RDBMS Linter is successed"
  connect.SQLTables('SYS%', '$$$%', 'VIEW, TABLE, SYSTEM TABLE')
  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

См. также пример demo21.rb в подкаталоге samples\ruby установочного каталога СУБД ЛИНТЕР.