Таблицы и буферы
Таблицы
Таблица базы данных представляет собой набор логически связанных данных, рассматриваемых как единое целое. Таблицы содержат строки и столбцы. Все строки в таблице содержат один и тот же набор столбцов (полей). Таблицы часто имеют индексы.
База данных OpenEdge следует реляционной модели, которая организует данные в таблицы. Отношения между таблицами определяются данными, то есть совпадающими значениями в общем для обеих таблиц поле. Подробнее см. «Элементы реляционной базы данных».
В ABL для доступа к записям в таблице используются операторы доступа к базе данных, такие как FIND, FOR EACH, REPEAT FOR или DO FOR. Если в любом из этих операторов указано имя таблицы базы данных, то автоматически создаётся и заполняется данными текущей записи буфер записей для таблицы.
Когда вы извлекаете запись из базы данных, AVM отслеживает текущую позицию записи с помощью индексного курсора — указателя на запись.
Буферы
Всякий раз, когда вы ссылаетесь на таблицы базы данных с помощью оператора доступа к базе данных, буферы записей для таблиц создаются автоматически для вашего удобства. Буфер записей — это область временного хранения в памяти, где AVM управляет записями по мере их перемещения между базой данных и операторами в вашем коде. Этот буфер записей по умолчанию имеет то же имя, что и таблица базы данных. Это позволяет вам мыслить с точки зрения прямого доступа к записям базы данных, потому что имя буфера — это имя таблицы, из которой берётся запись.
Вы можете создать дополнительные буферы для таблицы, когда вам нужно иметь две или более разных записей из одной и той же таблицы, доступных для вашего кода одновременно. Например, при поиске повторяющихся записей вы можете прочитать запись в буфер по умолчанию, а затем использовать другой буфер для просмотра остальных записей таблицы. Если один из них совпадает, то вы узнаете, что у вас есть дубликат.