русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции управления каталогом


Дата добавления: 2013-12-24; просмотров: 701; Нарушение авторских прав


Первая информация, которая может понадобиться прикладной программе для соединения с неизвестным источником данных – это информация о таблицах. ODBC-функция SQLTables возвращает список имен таблиц, которые содержит указанный источник данных. Используя идентификатор оператора, драйвер возвращает информацию в виде результирующего множества. Синтаксис SQLTables имеет вид:

 

RETCODE SQLTables (hstmt, szTableQualifier, sbTableQualifier,

szTableOwner, sbTableOwner, szTableName,

sbTableName, szTableType, sbTableType)

 

Таблица 24 Описание параметров SQLTables

Тип Аргумент Использование Описание
HSTMT hstmt Вход Идентификатор оператора
UCHAR* szTableQualifier Вход Имя квалификатора или “”, означающая, что таблицы не имеют квалификаторов
SWORD sbTableQualifier Вход Длина szTableQualifier или SQL_NTS
UCHAR* szTableOwner Вход Образец строки поиска для имен собственников или “”, означающая что данная база не поддерживает имен собственников.
SWORD sbTableOwner Вход Длина szTableOwner или SQL_NTS
UCHAR* szTableName Вход Образец строки поиска для имен таблиц.
SWORD sbTableName Вход Длина szTableName или SQL_NTS
UCHAR* szTableType Вход Список типов таблиц для выбора.
SWORD sbTableType Вход Длина szTableType или SQL_NTS

 

В образцах строк для поиска возможно использование символов-заменителей, так ‘%’ заменяет любую последовательность символов, а ‘-‘ – произвольный одиночный символ. Список типов таблиц для выбора может содержать следующие типы таблиц: ‘TABLE’,’VIEW’, ‘SYSTEM TABLE’, ‘ALIAS’ и некоторые таблицы. Представления (‘VIEW’) вообще-то не являются таблицами БД, но зачастую носят имя “виртуальных таблиц” в силу похожести использования для операторов извлечения. Если символ ‘%’ используется в каком-то из аргументов функции в качестве шаблона выбора, а все остальные аргументы шаблонов – пустые строки, то можно получить список всех квалификаторов, владельцев или таблиц для выбранного источника. При использовании такого способа вызова все столбцы в результирующем множестве, кроме одного, устанавливаются в NULL.



Например, следующий вызов возвратит список всех таблиц и представлений:

 

rc=SQLTables (hstmt, “”, SQL_NTS, “”,SQL_NTS, “%”, SQL_NTS, “’TABLE’, ‘VIEW’”, SQL_NTS).

 

Результирующее множество функции SQLTables одно и тоже для любого её вызова и представлено в таблице 25.

 

Таблица 25 Результирующее множество SQLTables

Имя столбца Тип данных Объяснение
TABLE_QUALIFIER VARCHAR(128) Идентификатор квалификатора
TABLE_OWNER VARCHAR(128) Идентификатор собственника
TABLE_NAME VARCHAR(128) Идентификатор таблицы
TABLE_TYPE VARCHAR(128) Идентификатор типа таблицы (“TABLE”, “VIEW” и др. строки)
REMARKS VARCHAR(256) Описание таблицы

 

Как только информация о таблицах получена, зачастую бывает необходимо получить информацию о столбцах интересующей таблицы. Чтобы выбрать эту информацию, программа должна вызвать SQLColumns(). При вызове драйвер, используя идентификатор оператора, возвращает эту информацию в результирующем множестве:

 

 

Таблица 26 Результирующее множество SQLColumns()

Имя столбца Тип данных Описание
TABLE_QUALIFIER VARCHAR(128) Идентификатор квалификатора
TABLE_OWNER VARCHAR(128) Идентификатор собственника
TABLE_NAME VARCHAR(128) Название таблицы
COLUMN_NAME VARCHAR(128) Название столбца
DATA_TYPE Smallint SQL – тип данных
TYPE_NAME VARCHAR(128) Имя типа данных в зависимости от источника
PRECISION Integer Точность
LENGTH Integer Длина столбца
SCALE Smallint Масштаб
NULLABLE Smallint SQL_NO_NULLS SQL_NULLABLE SQL_NULLABLE_UNKNOWN
REMARKS VARCHAR(254) Описание таблицы

 

Столбцы DATA_TYPE и TYPE_NAME определяют тип данных по разному. DATA_TYPE является ODBC SQL – типом данных, а TYPE_NAME является специфическим типом данных источника. Один и тот же ODBC SQL –тип может иметь разные типы данных для каждого источника. Столбцы PRECISION и SCALE можно использовать в других функциях (например в функции SQLBindParameter). PRECISION определяет общее число цифр или максимальную длину, а SCALE определяет количество цифр справа от десятичной точки и используется для числовых столбцов.

Синтаксис же функции следующий:

 

RETCODE SQLColumns (hstmt, szTableQualifier, sbTableQualifier,

szTableOwner, sbTableOwner, szTableName,

sbTableName, szColumnName,

sbColumnName)

 

 

Таблица 27 Описание параметров SQLColumns

Тип Аргумент Использование Описание
HSTMT hstmt Вход Идентификатор оператора
UCHAR* szTableQualifier Вход Квалификатор таблиц, “” означает, сто таблицы источника не поддерживают квалификаторов
SWORD sbTableQualifier Вход Длина szTableQualifier
UCHAR* szTableOwner Вход Образец строки поиска для имен собственников
SWORD sbTableOwner Вход Длина szTableOwner
UCHAR* szTableName Вход Образец строки поиска для имен таблиц
SWORD sbTableName Вход Длина szTableName
UCHAR* szColumnName Вход Образец строки поиска для имен столбцов
SWORD sbColumnName Вход Длина szColumnName

 

Первые семь параметров общие для большинства функций работы с системным каталогом. Оставшиеся два специфичны для данной функции. Для приложений может оказаться оправданным возвращение всех таблиц баз данных посредством SQLTables, однако это не совсем справедливо по отношению к столбцам. В больших базах список всех столбцов по всем таблицам очень большой. Поэтому для прикладной программы важно тщательное использование параметров, ограничивающих результирующее множество.

 



<== предыдущая лекция | следующая лекция ==>
Выполнение операторов | ИСПОЛЬЗОВАНИЕ ПАРАМЕТРОВ ПРИ ВЫПОЛНЕНИИ.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.065 сек.