- •7.1 Организация доступа к данным средствами технологии ado
- •7.2 Обзор средств доступа к базам данных
- •7.3 Краткая характеристика указанных компонентов
- •7.4 Создание простого приложения с базой данных
- •7.5 Основные свойства и методы компонента Table
- •7.6 Основные свойства и методы компонента Query1
- •7.7 Выполнение поиска по некоторому параметру
- •7.8 Использование языка запросов sql для поиска
- •7.9 Заполнение таблиц
- •7.10 Использование модуля данных
- •7.11 Создание отчетности
7.4 Создание простого приложения с базой данных
Показаны два варианта доступа к данным.
Доступ к данным средствами BDE. Расположить на форме три компонента: DataSource (источник данных ) – вкладка Data Access, Query (запрос) или Table – вкладка BDE , DBGid (сетка отображения данных) – вкладка Data Controls. Компоненты DataSourcе и Query (Table) являются невизуальными компонентами. Можно также поместить компонент DBNavigator для перемещения по записям набора данных.
Компонент DataSource
Свойство значение
DataSet Query1 или Table1
Компонент Query
Свойство значение
DataBaseName - имя базы
SQL текст запроса
Компонент Table
Свойство значение
TableName - имя таблицы
Доступ к данным организуется средствами ADO. Поместить на форму компонент ADO Connection со страницы ADО. Щелкнуть в свойстве Connection String компонента ADO Connection. В появившемся окне нажать на кнопку Build. В окне Свойства связи с данными на вкладке Поставщик данных выбирается SQL Native Client. На вкладке Подключение в пункте 2 Для входа в сервер выбрать Учетные сведения Windows NT. В пункте 3 выбрать свою базу.Щелкаем на кнопку «Далее»
Чтобы представить набор данных в табличном виде, необходимо расположить на форме три компонента: DataSource (источник данных ) – вкладка Data Access, DBGid (сетка отображения данных) – вкладка Data Controls. Поместить компонент DBNavigator для перемещения по записям набора данных. Навигатор позволяет редактировать данные и пересылать их в базу данных.
7.5 Основные свойства и методы компонента Table
В таблице 1 перечислены важнейшие свойства компонента Таblе, а в таблице 2 — методы. Эти свойства и методы специфичны для Таblе;
Таблица 1 - Свойства Тable
Свойство |
Описание |
DatabaseName |
Имя, путь к б.д. |
TableName |
Имя таблицы базы данных |
Active |
Активизирует таблицу |
DataSource |
Обеспечивает связь м/у таблицей данных с визуальными компонентами |
RecordCount |
Количество строк в таблице |
Filtered |
Разрешает, запрещает фильтрацию |
Bof |
Содержит true, если курсор находится на первой записи |
Eof |
Содержит true, если курсор на последней записи |
Таблица 2 - Методы Таblе
Метод |
Описание |
Append |
Добавляет пустую запись в конец набора данных. Table1->Append(); |
Close |
Закрывает набор данных Table1->Close(); |
FieldByName |
Обеспечивает доступ к полю по его имени Table1->FieldByName("FIO")->AsString= LabeledEdit1->Text; |
Open |
Открывает таблицу Table1->Open(); |
7.6 Основные свойства и методы компонента Query1
Таблица 3 - Свойства
Свойства |
Описание |
Active (true,false) |
Определяет, открыта или закрыта БД. |
DatabaseName |
Имя БД. |
DataSourse |
Указывает компонент DataSourse относящейся к главной таблице, из которой берется значение ключа. |
RecordCount |
Количество строк в запросе |
SQL |
Свойство компонента, содержит запрос SQL. |
Таблица 4 - Основные методы
Open() |
Открыть таблицу. |
Cancel() |
Отменяет результаты редактирования |
Close() |
Закрывает набор данных. |
FieldByName() |
Находит поле по его имени. |
First() |
Перемещает курсор к первой записи. |
GetFieldNames() |
Выдает список имен всех полей таблицы. |
К основным методам Query можно отнести методы открытия и закрытия соединения с базой данных.
Метод Close закрывает соединение с базой данных, переводя свойство Active в false. Этот метод надо выполнять перед изменением каких-то свойств, влияющих на выполнение запроса или на отображение данных. Например, при изменении параметров запроса в свойстве SQL надо сначала методом Close закрыть соединение, связанное с прежним запросом, а потом уже выполнять новый запрос.
Метод Open открывает соединение с базой данных и выполняет запрос, содержащийся в свойстве SQL. Но этот метод применим только в том случае, если запрос сводится к оператору Select.
Для осуществления любого другого запроса, кроме Select, используется метод ExecSQL.
Все указанными свойствами и методами обладают компоненты ADOTable и ADOQuery.
Имеется база данных, состоящая из трех таблиц: tovar, custom, orders.
В примере организован доступ средствами ADO.
Настройка свойств компонентов на этапе проектирования – устанавливаются свойства в Инспекторе объектов.
Компонент DataSource1
Свойство значение
Свойство значение
DataSet ADOQuery1 или ADOTable1
Компонент ADOQuery1
Свойство значение
Connection ADOConnection1
SQL select * from Tovar ( на этапе проектирования )
При использовании компонента ADOTable1:
Свойство значение
TableName Tovar.db
Этот запрос на выборку всех полей таблицы Tovar
Компонентs DBGrid1, DBNavigator1
Свойство значение
DataSource DataSource1
ShowHint True для навигатора
Если текст запроса занесен в свойство SQL, чтобы его выполнить компонент Query активируется.
Его можно активировать, используя инспектор объектов:
Свойство значение
Active true
Можно это выполнить программно:
{ADOquery1->Open(); {подключение к базе данных}
Button1->Enabled=False; {к активной базе данных нельзя подключиться}
}
Запросы можно задавать как на этапе проектирования, так и этапе программирования. Иногда удобнее задавать в ходе выполнения приложения.
Тот же запрос на выборку всех полей таблицы Tovar, выполненный программно.
В этом случае обработчик события при использовании компонента ADOQuery1 будет иметь следующий вид .
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ADOQuery1->SQL->Clear(); //очищает от старого запроса
ADOQuery1->SQL->Add("select * from tovar"); //запрос
ADOQuery1->Open(); //активизирует компонент
}
В результате выполнения запроса компонент DBGrid предоставил таблицу Tovar в табличном виде. Если дважды щелкнуть на объекте DBGrid, откроется окно редактора свойств Columns Editor. Щелкнуть правой кнопкой мыши и выбрать строку Add All Fields. Откроется свойство Title и для каждого поля в свойстве Caption можно записать русские названия полей.
С помощью навигатора можно передвигаться по записям набора данных. Если на некоторое время задержать указатель мыши ад одной из кнопок навигатора, то появляется всплывающая подсказка к этой кнопке (значение свойства ShowHint – True).
