Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Представление классов






Лекция 9 БД. Использование SQL

1. БД-настройка

2. Расширение Caché SQL

3. Встроенный SQL

4. Динамический SQL

 

БД-настройка

Вся информация(данные и программы) в базах данных Caché хранятся в глобалах-хранимых многомерных массивах данных.

База данных в Caché –это бинарный файл с фиксированным именем CACHE.DAT, в котором хранятся глобалы. Для каждой новой БД необходимо определить директорию для хранения файла CACHE.DAT. БД могут работать под управлением различных серверов Caché.

Область-это логическая карта, на которой указаны имена глобалов а также имена БД Caché, в которой они хранятся. При работе с глобалами и программами используется имя области.

СУБД Caché поддерживает горизонтальную фрагментацию данных, когда одна область может описывает множество глобалов и программ., что позволяет создавать многоуровневые и распределенные системы.

Для смены области в Терминале мб использована команда ZN, а также утилита: %CD и основное меню.

Для создания БД в Портале выбираем Конфигурация-Области-создать новую область. Далее указываем имя БД из списка, ассоциированной с создаваемой областью либо создаем новую БД. Подключаем флаг «Создать CSP приложение». Размер рекомендуется изменить на предполагаемый максимальный и указать ресурс БД.

Рассмотрим настройку ODBC/JBDC драйвера, который входит в стандартную поставку. Для работы через этот драйвер необходимо определить учетную запись с помощью утилиты ODBC Data Source Administrator и добавить новый источник System DSN для драйвера INTER System Caché ODBC/

Имя: NICK

Узел: 127.0.0.1

Порт: 56773

Область Caché: NICK

Метод аут: пароль

Имя пользователя: _system

Пароль: ****

Проверка соединения----

Представление классов

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

Данные хранятся в глобале, имя которого начинается с полного имя класса, то есть пакет.класс, при этом справа к имя глобала данных добавляется буква " D", к имени глобала индекса добавляется буква " I".

- Данные каждого экземпляра хранятся внутри единственного узла глобала данных, при этом значения свойств размещаются в списковых структурах.

- Данные каждого индекса хранятся внутри единственного узла глобала данных, при этом значения свойств размещаются в массивах.

- Каждый узел глобала данных имеет объектный идентификатор ID.

По умолчанию, значение ID - это целые числа, значения которых обеспечиваются вызовом функции $Increment.

При этом для работы с объектами можно использовать или объектный доступ, или чрезвычайно эффективный прямой доступ с помощью глобалов.

Например, допустим, мы определили простой сохраненный класс MyApp.Person с двумя литеральными свойствами:

 

Class MyApp.Person Extends %Persistent [ClassType = persistent]

{

Property Name As %String;

Property Age As %Integer;

}

 

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

^MyApp.Person = 2 // номер последнего узла данного уровня (счетчик узлов)

^MyApp.Person (1) = $LB (" ", 19, " Иванов")

^MyApp.Person (2) = $LB (" ", 20, " Петров")

 

Заметим, что первый элемент списка - пуст. Это место зарезервировано для имени подкласса. Если определить подклассы класса Person, этот элемент будет содержать имя подкласса.

Метод %%OpenId, обеспечиваемый классом %%Persistent, использует эту информацию для полиморфного открытия корректного типа объекта, когда несколько объектов хранятся внутри подобных экстентов.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.