- •Разработка клиентского приложения для работа с базой данных в Turbo Delphi. Пример бд
- •Создание проекта.
- •Механизм доступа к данным
- •Подключение набора данных
- •Набор данных, Доступ к таблицам бд
- •Соединение набора данных (DataSet) с визуальными компонентами.
- •Отображение данных. Работа с визуальными компонентами.
- •Табличное представление данных Компонент tdbGrid
- •Синхронное отображение таблиц.
- •Сортировка по полю
Подключение набора данных
Компонент доступа к данным является основой приложения баз данных. На основе выбранной таблицы БД он создает набор данных и позволяет эффективно управлять им. В процессе работы такой компонент тесно взаимодействует с функциями соответствующей технологии доступа к данным. Обычно доступ к функциональности технологии доступа к данным осуществляется через совокупность интерфейсов. Все компоненты доступа к данным являются невизуальными.
На первом этапе необходимо подключиться к базе данных. Для этого будем пользоваться компонентом TADOConnection.
Разместите в модуле данных (DataMod.pas) компонентTADOConnection.
Кликните на компонент два раза
После этого появится диалоговое окно. В котором необходимо указать параметры подключения к БД.
Нажмите Build…
В окне выбираем LCPI OLE Provider for InterBase (v3) Free
!!! Данный поставщик будет доступен, только после установки приложения IBProvider_free !!!
Нажимаем Далее>>и внимательно заполните поля, следуя образцу:
На вкладке «Дополнительно» и укажите в поле «Тип» Firebird 1.5 и «Динамическая библиотека»fbclient.dll
Вернитесь в предыдущую вкладку «Подключение».
Затем после нажатия кнопки «Проверить подключение»должно появиться следующее окно
Что свидетельствует о доступности СУБД.
Теперь нажмите ОК– в строке «UseConnectionString» появилась строка настройки БД, а затем нажмите еще разОК.
Для компонента ADOConnectionперейдите на вкладкуProperties (Свойства)Инспектора Объектови укажите в свойствеLoginPromptзначениеFalse. Что позволит запомнить пароль на подключение к БД.
Теперь установите соединение с БД. Для этого перейдите в свойство Connectedи выберитеTrue.
Если не будет выдано сообщение об ошибке, то подключение к вашей БД прошло успешно.
Набор данных, Доступ к таблицам бд
Теперь необходимо перенести компонент, инкапсулирующий набор данных, и выполнить следующие действия.
1. Подключишь компонент к базе данных. Для этого используется свойство Connection.
2. Подключить к компоненту таблицу БД. Для этого воспользуемсяSQLзапросом к БД.
3. Переименовать компонент. Это не обязательное действие. Тем не менее, в любых случаях желательно присваивать компонентам доступа к данным осмысленные имена, соответствующие названиям подключенных таблиц. Обычно название компонента копирует название таблицы.
4. Активизировать связь между компонентом и таблицей БД. Для этого используется свойствоActive. Если в Инспекторе объектов присвоить этому свойству значениеTrue, то связь активизируется. Эту операцию можно выполнить и в исходном коде приложения. Также существует методOpen, который открывает набор данных, и методClose, закрывающий его.
Для доступа к данным необходимо воспользоваться специальным компонентом основанном на классе TDataSet,инкапсулирующим данные таблиц БД.
Основные свойства и методы:
Набор данных открывается и закрывается свойством
property Active: Boolean;
или методами Open(открытие) иClose(закрытие).
Перед началом редактирования набор данных нужно перевести в режим редактирования, используя метод
procedure Edit;
Для сохранения сделанных изменений применяется метод
procedure Post; virtual;
Разработчик может вызывать его самостоятельно, или же метод Postвызывается самим набором данных при переходе на другую запись.
При необходимости все сделанные после последнего вызова метода Postизменения можно отменить методом
procedure Cancel; virtual;
Текущая запись удаляется методом
procedure Delete;
При этом набор данных не выдает никаких предупреждений, а просто делает это.
Будем пользоваться компонентом ADODataSet(наследник классаTDataSet)для доступа к отдельным таблицам. Разместим в модулеDataMod.pasкомпонентыADODataSet . Для каждой существующей таблицы в БД создадим отдельный компонентADODataSetи назовем (свойствоName) их в соответствии с именем таблицы: например, для таблицыPrepod–ADODataSetPrepod, дляSubject–ADODataSetSubjectи т.д. Для каждого из компонентов необходимо указать следующие свойства:
CommandText– в данном свойстве указываетсяSQLзапрос к базе на получение данных. Для того чтобы получить полную структуру таблиц, будем писать запросы следующего вида:
Select *
From <имя таблицы>
Для каждого компонента, нажав на свойство CommandText откроем окно редактора. В данном окне напишим запрос к БД
Для каждого компонента ADODataSetв свойствеConnectionукажите источник данных –ADOConnection1. (т.е все данные беруться из базы указанной в этом компоненте)
Теперь можно активировать доступ к данным указав в свойстве Action=True.
Всегда следите чтобы данное свойство было равно True. В противном случае доступ к данным будет не возможен.
Теперь нажмите на любой из компонентов ADODataSet, откроется окно вида:
Добавьте для отображения все доступные поля командой Add all fields…Для каждого из полей можно задать следующие свойства:
AutoGenerateValue– для первичного ключа укажите значениеarAutoInc
DisplayLabel– можно писать киррилицей название поля для отображения.
EditMask– маска ввода
Index– номер поля (нумерация начинается с нуля)
ReadOnly– поле только для чтения
Required– поле обязательно для заполнения
Visible– настройка видимости. Для полей которые не нужно отображать (например первичные ключи) можно указатьfalse.
Проведите подобные действия для каждого компонента ADODataSet.