- •Определение базы данных.
- •2) Таблица, как основной объект бд.
- •3) Представление.
- •4) Хранимые процедуры.
- •5) Типы данных.
- •Лекция №4. 24.02.12
- •Оператор create table
- •Использование индексов
- •Оператор alter
- •Оператор drop
- •Ограничение столбца
- •Ограничение домена
- •Лекция №5 02.03.12
- •Ограничение сущностей
- •Ограничение ссылочной целостности
- •Представление
- •Хранимые процедуры
- •Создание и изменени хранимой процедуры
- •Виды хранимых процедур
- •Лекция №6 11.03.12
- •Триггеры
- •Лекция №7 16.03.12
- •Инструменты
- •Компоненты
- •Компонент ibDatabase
- •Механизм транзакций
- •Лекция №6 23.03.12
- •Компонент DataSource
- •Компоненты визуализации
- •Лекция 7 30.03.12 Сортировка набора данных в компоненте ibTable
- •Сортировка набора данных ibQuery
- •Фильтрация наборов данных
- •Фильтрация запиcей одной таблицы
- •Фильтрация записей, связанных по внешнему ключу таблицы
- •Механизмы поиска в наборах данных
- •Лекция 8 06.04.12
- •Создание отчета при помощи мастера
- •Создание отчета в режиме конструктора
- •Лекция 9 13.04.12 Базовые классы для работы с данными.
- •Пространство имен ado .Net
- •Типы пространства имен System.Data
- •Использование классов DataColumn, DataTable, DataRow Класс DataColumn
- •Лекция 9 20.04.12
- •Класс DataTable
- •Класс DataRow
- •Лекция 27 апреля Работа со свойством ItemArray
- •Использование классов DataSet и DataRelation
Лекция 7 30.03.12 Сортировка набора данных в компоненте ibTable
Сортировка наборов данных в IBTable происходит автоматически по индексному полю. При смене индекса происходит автоматическое переупорядочивание записей.
Пример сортировки с указанием имен индексов:
IBTable1->Active=false;
IBTable1->IndexFieldNames=”Name.gr”;
IBTable->Active=true;
Пример сортировки при щелчке на заголовке столбца:
IBTable1->Active=false;
IBTable1->IndexFieldNames = Column->FieldName;
IBTable->Active=true;
//DBGridTitleClick
Аргумент column является указателем на тот столбец, заголовок которого был отмечен щелчком.
Сортировка набора данных ibQuery
В тех случая, когда записи набора данных сформированы на основе не одной, а нескольких реляционных таблиц нужно использовать компонент Query. Свойство SQL этого компонента позволяет задать упорядочивание данных в конструкции ORDER BY в котором задаются одно или несколько полей, определяющих порядок следование записей набора данных.
Пример:
На форму поместим компонент IBQuery и настроим свойство DatabaseName (IBDatabase1);
В свойство SQL поместим необходимый SQL код;
В компоненте DataSource в свойстве Dataset установим значение IBQuery1;
В компоненте DBGrid в свойстве Datasource установим значение.
IBQuery1->Active = false;
IBQuery1->SQL->Clean();
IBQuery1->SQL->Add(“SELECT …”);
IBQuery1->SQL->Add(“ORDER BY”+Column->FieldName);
IBQuery1->Active=true;
Фильтрация наборов данных
Фильтрацию данных можно рассматривать в трех аспектах:
Вертикальная фильтрация набора данных, когда в компоненты визуализации передается только часть полей из всех записей наборов данных;
Горизонтальная фильтрация набора данных, когда в компоненты визуализации передается только часть записей наборов данных со всеми полями;
Комплексная фильтрация набора данных, когда в компонеты визализации передается часть полей из записей, отобранных по некоторому критерию.
Фильтрация запиcей одной таблицы
Задача фильтрации запией одной таблицы возникает тогда, когда из большого числа записей, хранящихся в таблице в компонентах визуализации нужно показать лишь небольшую его часть.
Для активации и деактивации применяется свойство Filtered компонента Table.
По умолчанию это свойство имеет значение false – фильтрация выключена. При установке свойству значения true фильтрация включается и в набор данных отбираются записи, которые удовлетворяют фильтру, записанному в свойство Filter. Если выражение фильтра не задано, то в набор данных попадают все записи.
Пример:
Фильтрация при помощи поля ввода
IBTable1->filtered = false;
IBTable1->Filter = “Nameg_gr” + Edit->Text;
IBTable1->Filtered = true;
Фильтрация записей, связанных по внешнему ключу таблицы
В компонент Table встроен механизм фильтрации записей по внешнему ключу, т.е. в подчиненной таблице можно отфильтровать только те записи, которые отвечают только некоторому значению внешнего ключа.
Помещаем на форму первый компонент IBTable, настраиваем его свойства DatabaseName и TableName;
Помещаем на форму первый Datasource, в свойстве Dataset устанавливаем значение Table1;
Помещаем на форму первый DBGrid, и свойству Datasource установим значение Datasource1;
Помещаем на форму второй компонент IBTable, настраиваем его свойства DatabaseName и TableName;
Помещаем на форму второй Datasource, в свойстве Dataset устанавливаем значение Table2;
Помещаем на форму первый DBGrid, и свойству Datasource установим значение Datasource2;
В подчиненной таблице Table1 свойству Mastersource установим значение Datasource2, установив связь между таблицами;
Для того, тчобы установить связь по внешнему ключу нужно дать правильное значение полю MasterFields, которое определяет поля внешнего ключа;