Программирование на С++ - eDrive

Программирование на С++ - eDrive Программирование на С++ - eDrive

edrive.narod.ru
from edrive.narod.ru More from this publisher
24.11.2014 Views

22 ные числа. Корректировать, добавлять и удалять записи можно как через таблицу DBGrid, так и с помощью панели DBNavigator. Задачи 1. Сохранить файловый источник данных в одной папке с приложением, чтобы приложение вместе с базой данных и файловым источником данных было удобно перемещать на новое место. 2. С той же целью в строке подключения заменить абсолютный путь к базе данных на относительный, например: Properties=“DBQ=myDatabase7.mdb;DefaultDir=;Driver={Microsoft Access Driver (*.mdb)}” 2. Изменить строку подключения базы данных, заменив поставщика данных Microsoft OLE DB Provider for ODBC Drivers поставщиком Microsoft Jet OLE DB Provider. Работа 9. Управление базой данных Задание Для изучения возможностей управления базой данных через запросы SQL организовать выполнение математических и групповых операций и поиск информации в подключенной базе данных аналогично тому, как это делалось в предыдущих работах с массивами. Рекомендации 1. Формирование таблицы. Для подготовки таблицы с заданным числом записей дополнить модуль данных элементом управления ADOCommand с вкладки ADO панели визуальных компонентов и подключить его к ADOConnection свойством Connection. Обработчик элемента управления, формирующего таблицу, включает два запроса действия: TADOCommand *ac = DataModule1–>ADOCommand1; ac–>CommandText = "DELETE * FROM myTable1"; ac–>Execute (); for (int i=0; iText); ++i) { ac–>CommandText = "INSERT INTO myTable1 (Vector0, Vector1) VALUES (" + FloatToStr (random (100)) + "," + FloatToStr (random (100)) + ")"; ac–>Execute (); } DataModule1–>ADOTable1–>Requery ();

23 В этом фрагменте первым запросом элемент управления ADOCommand удаляет все записи из таблицы, а затем в цикле выполняет запрос на заполнение новыми случайными данными записей, количество которых указано в поле Edit1. Аргументы текста ADOCommand соединены оператором сложения, образуя команду SQL. По завершении выполнения запросов действия ADOTable обновляется. 2. Расчетное поле. Обработчик, заполняющий расчетное поле суммой данных двух полей может выглядеть так: DataModule1–>ADOCommand1–>CommandText = "UPDATE myTable1 SET Vector2 = Vector0 + Vector1"; DataModule1–>ADOCommand1–>Execute (); DataModule1–>ADOTable1–>Requery (); Более сложные выражения строятся с использованием операторов и функций SQL, приведенных в табл. 2. 3. Групповые операции. Чтобы вывести минимальное, максимальное и требуемое статистическое значение вычисляемого поля надо подготовить запрос с группировкой. С этой целью поместить в модуль данных элемент управления ADOQuery с вкладки ADO. Соединив его с ADOConnection свойством Connection, в свойство SQL занести SQL-выражение вида SELECT MIN (Vector2) AS Минимум, MAX (Vector2) AS Максимум, AVG (Vector2) AS Операция FROM имяТаблицы Открыть запрос, установив в true его свойство Active. Добавить в модуль данных и связать с ADOQuery новый источник DataSource, а в форму – три элемента управления DBText с вкладки Data Controls, в которых инициализировать свойства DataSource и DataField. В обработчике кнопки управления вычислениями обновить этот запрос: DataModule1–>ADOQuery1–>Requery (); 5. Сортировка. Для сортировки записей таблицы по возрастанию значений расчетного поля потребуется еще одна кнопка с обработчиком типа: DataModule1–>ADOTable1–>Sort = "Vector2 ASC"; 6. Поиск данных. Последняя кнопка в паре с надписью предназначена для поиска требуемых пользователю данных расчетного поля, например:

23<br />

В этом фрагменте первым запросом элемент управления ADOCommand<br />

удаляет все записи из таблицы, а затем в цикле выполняет запрос <strong>на</strong><br />

заполнение новыми случайными данными записей, количество которых<br />

указано в поле Edit1. Аргументы текста ADOCommand соединены<br />

оператором сложения, образуя команду SQL. По завершении выполнения<br />

запросов действия ADOTable обновляется.<br />

2. Расчетное поле. Обработчик, заполняющий расчетное поле суммой данных<br />

двух полей может выглядеть так:<br />

DataModule1–>ADOCommand1–>CommandText =<br />

"UPDATE myTable1 SET Vector2 = Vector0 + Vector1";<br />

DataModule1–>ADOCommand1–>Execute ();<br />

DataModule1–>ADOTable1–>Requery ();<br />

Более сложные выражения строятся с использованием операторов и функций<br />

SQL, приведенных в табл. 2.<br />

3. Групповые операции. Чтобы вывести минимальное, максимальное и требуемое<br />

статистическое з<strong>на</strong>чение вычисляемого поля <strong>на</strong>до подготовить запрос<br />

с группировкой. С этой целью поместить в модуль данных элемент<br />

управления ADOQuery с вкладки ADO. Соединив его с ADOConnection<br />

свойством Connection, в свойство SQL занести SQL-выражение вида<br />

SELECT MIN (Vector2) AS Минимум, MAX (Vector2) AS Максимум,<br />

AVG (Vector2) AS Операция FROM имяТаблицы<br />

Открыть запрос, установив в true его свойство Active. Добавить в модуль<br />

данных и связать с ADOQuery новый источник DataSource, а в форму – три<br />

элемента управления DBText с вкладки Data Controls, в которых инициализировать<br />

свойства DataSource и DataField. В обработчике кнопки управления<br />

вычислениями обновить этот запрос:<br />

DataModule1–>ADOQuery1–>Requery ();<br />

5. Сортировка. Для сортировки записей таблицы по возрастанию з<strong>на</strong>чений<br />

расчетного поля потребуется еще од<strong>на</strong> кнопка с обработчиком типа:<br />

DataModule1–>ADOTable1–>Sort = "Vector2 ASC";<br />

6. Поиск данных. Последняя кнопка в паре с <strong>на</strong>дписью пред<strong>на</strong>з<strong>на</strong>че<strong>на</strong> для<br />

поиска требуемых пользователю данных расчетного поля, <strong>на</strong>пример:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!