Реферат: Методические указания и задания на курсовую работу по дисциплине информатика



Федеральное агентство по образованию

ГОУ ВПО Тульский государственный университет


Факультет систем автоматического управления

(ИВТС им. В.П. Грязева)


Кафедра Электроэнергетики


ИНФОРМАТИКА

Методические указания и задания на

курсовую работу по дисциплине

ИНФОРМАТИКА


«Разработка и программирование информационно-поисковых систем в среде Borland C++ Builder»


Для студентов очной форм обучения


Направления подготовки:

140600 - Электротехника, электромеханика и электротехнологии


Специальности:

140604 – Электропривод и автоматика промышленных установок и

технологических комплексов

140610 - Электрооборудование и электрохозяйства предприятий,

организаций и учреждений.


Тула 2009

УДК 681.3.06


Методические указания соответствуют государственному образовательному стандарту дисциплины «Информатика» направления подготовки бакалавров и дипломированных специалистов направлений 140600 (специальности 140604 – Электропривод и автоматика промышленных установок и технологических комплексов 140610 - Электрооборудование и электрохозяйства предприятий, организаций и учреждений)


Главное внимание уделено изучению приемов программирования в системе Borland C++ Builder и приобретению практических навыков в решении задач на персональных ЭВМ. Акцентируется внимание на работу с файлами на магнитных носителях. Приводится тематика курсовых работ, основные принципиальные положения, практические примеры.

Методические указания разработаны доцентом Гореловым Ю.И. и обсуждены на заседании кафедры Электроэнергетики факультета САУ


протокол №___ от "___"______________ 200_ г.

Зав. кафедрой ____________________ В.М. Степанов

Рабочая программа согласована с кафедрой Э и ЭО факультета САУ

"___"______________ 200_ г.

Зав. кафедрой _______________________ Б.В. Сухинин


Рабочая программа согласована с кафедрой ПУ факультета САУ,

"___"______________ 200_ г.
Зав. кафедрой _______________________ В.Я. Распопов


ВВЕДЕНИЕ


Целью курсовой работы является закрепление основ и углубление знаний приемов программирования в среде программирования Borland C++ Builder, получение практических навыков в создании программного продукта. При выполнении курсовой работы студент самостоятельно осваивает все этапы создания программного комплекса от постановки задачи до практической реализации, сопровождающейся документацией и инструкциями по его использованию. При выполнении курсовой работы студентам необходимо обратить внимание на качество создаваемых программ.



^ ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ




Тематика курсовых работ


Тематика подразделяется на типовую и выбираемую студентом самостоятельно. В типовой работе предлагается разработать комплекс программ по созданию и обработке файлов, используемых для долговременного хранения информации. При этом студенту необходимо самостоятельно определить структуру и характеристики значений вводимых данных, обосновать используемый способ обмена информацией, создать файл во внешней памяти, предусмотреть ряд функций по обработке информации.

Каждое задание на курсовую работу уточняется с преподавателем.


^ 1.2. Задание на типовую курсовую работу


Необходимо разработать программный комплекс по созданию и обработке файлов, используемых для хранения информации.

Вводимые данные представляют из себя следующую структуру:



Элемент 1

Элемент 2

Элемент 3



Элемент N


где 5<=N<=12.

Студент должен самостоятельно выбрать предметную область (объект для информационно-поисковой системы) среди представленных в приложении 2 .

Определить число информационных полей для выбранного объекта, предложить конкретную структуру записи.

Сформулировать техническое задание (ТЗ) для конкретной системы.

Любая ИПС должна выполнять следующие функции:

вывод содержимого файла;

добавление новых данных в файл;

выборка информации по любому элементу данных;

удаление информации об объекте по заданному признаку;

сортировка информации по выбранному признаку;

использование динамических структур.

Проанализировать задачу с целью выявления отдельных подзадач, выделенные подзадачи (программные модули) рассмотреть на зависимость и независимость друг от друга.

Выполнить программную реализацию в среде программирования Borland C++ Builder, для проверки работоспособности ПК взять вариант исходных данных, не менее 15-20 записей.

Результаты проверки работоспособности программы сохранить в файле-протоколе.




^ МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ




Содержание пояснительной записки


2.1.1. Перечень основных разделов


Пояснительная записка должна содержать все разделы, отражающие этапы создания программного комплекса, должна быть выполнена рубрикация текста (см. как это выполнено в данном пособии), пронумерованы страницы, сделаны ссылки на используемую литературу (для ссылок используются квадратные скобки, например [2]) и составлено оглавление.


Основные разделы пояснительной записки:


техническое задание на разработку информационного и программного обеспечения;

структура информационного и программного обеспечения;

описание алгоритмов и подпрограмм (функций и процедур), используемых для создания программного обеспечения;

тексты программных модулей;

протоколы работы программного обеспечения (ПО) по всем функциям, заложенным в техническом задании;

технические условия применения программного обеспечения, инструкция для пользователя ПО;

список используемой литературы.


^ 2.1.2. Структура текста курсовой работы


2.1.2.1. Техническое задание


В процессе разработки технического задания (ТЗ) студент получает первоначальные навыки в составлении ТЗ на программное обеспечение по выданному заданию на курсовую работу. В ТЗ должны быть проработаны следующие основные вопросы:


введение (состояние поставленной задачи на момент получения задания), где должна быть указана цель разработки, область применения программного обеспечения (ПО), сформулировано авторское наименование программного комплекса (ПК), который соответствует заданию на курсовую работу;

требования к ПО. Здесь должны быть перечислены все функции, которые необходимо реализовать в процессе создания ПО (ПК студент разрабатывает самостоятельно с учетом наличия готовых программных средств, которые можно включить в ПО).


^ 2.1.2.2. Структура информационного обеспечения


При получении задания на информационно-поисковую систему (ИПС), студент должен выбрать тип организации для хранения данных и способ доступа к ним. Структура записи должна иметь все поля, необходимые для реализации заказанных функций в ТЗ.

Для каждого поля записи необходимо определиться с типом данных.


^ 2.1.2.3. Структура программного обеспечения


Структура ПК зависит от заданных функций в ТЗ и от выбора структуры информационного обеспечения. В среде программирования Borland C++ Builder рекомендуется строить с использованием форм меню, где для каждого заказанного требования предусмотреть соответственно отдельную функцию.


^ 2.1.2.4. Алгоритмы по созданию функций


Алгоритмы могут быть приведены в словесной форме, в виде графических схем, либо в некоторых случаях можно привлечь математический аппарат. Простые алгоритмы реализации программных модулей можно не приводить, обеспечив необходимыми комментариями тексты процедур (тексты разместить в следующем разделе).

В данном разделе необходимо привести полный перечень всех подпрограмм, входящих в состав ПО, с указанием выполняемой функции, описать назначение формальных параметров, пояснив тип данных для каждого параметра.


^ 2.1.2.5. Отладка программных модулей


В этом разделе необходимо привести план тестирования ПК для контроля этапов алгоритмизации и программирования. Подготовить эталонные промежуточные и окончательные результаты, подтверждающие работу ПК по всем заложенным в ТЗ функциям.

Привести необходимые данные для заполнения информационной базы и написать по каждому требованию ТЗ желаемый результат.

Например: если организуется поиск информации, то в плане тестирования приводится контрольная информация (в обозримом объеме), по которой ведется поиск; признак поиска; желаемый результат.

От качества предложенных тестов зависит время, затраченное на проверку ПК. Удачно подобранные промежуточные данные позволяют локализовать алгоритмические ошибки.

Контроль правильности текстов программ принято делить на: "ручной" (без вмешательства ЭВМ) и автоматизированный (трансляция, тестирование на ЭВМ). Перед обращением к ЭВМ написанный текст программы рекомендуется просмотреть на предмет описок и смыслового расхождения с предложенным вариантом задачи. Путем сплошного просмотра текста выявляется правильность написания ключевых слов, операторов, организации циклов.

Полезно сравнить текст с условиями задачи. "Ручная" проверка индивидуальна, но может быть эффективной, если программист способен мысленно представить во всех деталях алгоритм написанной программы.

Автоматизированный контроль осуществляет транслятор.

Трансляция выявляет синтаксические ошибки, но не более того. Правильность работы ПК проверяется на базе контрольных тестов путем многократного запуска ПК по всем функциям (требованиям) из ТЗ и сверкой результатов машинных протоколов и предложенных тестов.


^ 2.1.2.6. Тексты программных модулей


Тексты распечатываются после получения правильных результатов по всем запланированным функциям ПО.

Тексты должны быть снабжены комментариями.

Комментариями нельзя злоупотреблять, большое количество загромождает суть программы, ухудшает читабельность текста, как и их полное отсутствие. При размещении пояснений по тексту ПК следует придерживаться следующих рекомендаций:

написать комментарии по разработанным функциям;

выделить логически завершенные участки, важные по содержательному пониманию работы ПК.



^ 2.1.2.7. Протоколы, подтверждающие работоспособность программного комплекса


Для проверки работоспособности ПК необходимо:

самостоятельно подготовить данные, подобрав конкретные значения таким образом, чтобы можно было убедиться в правильности работы каждой заданной функции в ТЗ;

в программе параллельно с выводом информации на экран обеспечить вывод в файл протокола;

выполнить проверку конкретных значений контрольного примера по всем предусмотренным в ТЗ функциям;

распечатать полученный файл с протоколом работы программы, включающий распечатку данных и, если требуется, пояснения результатов.


^ 2.1.2.8. Условия использования программного комплекса


В этом разделе должны быть приведены технические условия и состав программного обеспечения для работы вышеописанного ПК.

Указать персональную ЭВМ, на которой был отлажен ПК, операционную систему, язык программирования, указав версию. Привести состав файлов, входящих в ПК в следующем виде: имя файла с расширением - размер в байтах - назначение.

Размер ПК указать в исходном виде и в готовом к выполнению, т.е. привести размеры файлов с расширением ".cpp",".exe".

Привести размеры файлов данных с указанием числа записей.


^ 2.1.2.9. Список используемой литературы


Список литературы приводится по общепринятым правилам для технической литературы. На приведенную литературу должны быть сделаны ссылки в тексте пояснительной записки.


^ 2.2. Вспомогательный материал


2.2.1. Перечень вопросов, подлежащих изучению


В процессе выполнения работы студент должен разобраться в следующих вопросах:

основы работы с базами данных;

произвольный доступ к базам данных;

организация ввода/вывода для типов, определенных пользователем.

В курсовой работе рассматриваются типизированные и текстовые файлы, прямой и последовательный доступы к данным.

Студенту необходимо прежде всего понимать как распространяется блок описания данных на текст программы, что такое файл, поток ввода и вывода, внешнее имя файла, объявление файла в программе, связь потока ввода-вывода с внешнем именем файла в среде операционной системы.



^ МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО СОЗДАНИЮ ИПС В СРЕДЕ ПРОГРАММИОВАНИЯ BORLAND C++ BUILDER


3.1. Понятие базы данных
База данных – это совокупность записей различного типа, содержащая перекрестные ссылки. Записи одного типа в базе данных хранятся в таблицах. Файл –это совокупность записей одного типа, в которой перекрестные ссылки отсутствуют. База данных – это набор таблиц с перекрестными ссылками. Чтобы универсальным образом извлекать из нее группы записей и обрабатывать их используются специальные программы, которые называются системами управления базами данных (СУБД). Таблица, в которой хранятся данные, представляет собой набор записей одинаковой структуры. Таблица – это двумерный массив, в котором строкам соответствуют записи а столбцам – поля записей. Модель базы данных, состоящая из подобных таблиц, называется реляционной. Практически все наиболее известные и популярные в настоящее время СУБД поддерживают именно реляционную модель базы данных. Вместе с тем имеются модели баз данных другого типа: Иерархическая модель – данные организованы в виде деревьев; Сетевая модель – каждый узел базы данных взаимодействует с другими узлами посредством сложной системы связей; Объектная модель базы данных – в базе хранятся не только данные, но и методы их обработки в виде программного кода. Приложения, использующие базы данных, обычно относят к одной из следующих программных архитектур: Локальная архитектура – программа и база данных расположены на одном компьютере; Файл-серверная архитектура – база данных расположена на мощном выделенном компьютере, называемым сервером; а остальные – пользовательские компьютеры- подключены к серверу по локальной сети; на пользовательских компьютерах установлены клиентские программы, обращающиеся к базе данных по сети; Клиент-серверная архитектура – на сервере хранится не только база данных, но и работает программа СУБД, что позволяет исключить непосредственную физическую работу с записями базы данных и осуществлять ее непосредственно через базу данных; Распределенная архитектура –в сети работает несколько серверов, на которых распределены таблицы базы данных, на каждом сервере функционирует своя копия СУБД и специальная программа, называемая сервером приложений, позволяющая оптимизировать обработку запросов и переток информации между узлами сети; Интернет-архитектура – доступ к базе данных и СУБД, расположенных на одном или нескольких компьютерах осуществляется из броузера по стандартному протоколу, что позволяет унифицировать доступ и передачу данных между элементами сети и существенно понизить требования к клиентскому оборудованию
^ 3.2. Реализация работы с СУБД в системе Borland C++ Builder
При создании программ, работающих в системе Borland C++ Builder, используется механизм Borland Database Engine (BDE). Этот механизм реализован в виде набора библиотек программ, обеспечивающих простой и удобный доступ к работе с базами данных независимо от их архитектуры. BDE представляет собой программную прослойку между клиентской программой и базой данных. Запрос из приложения передается в BDE , который использует специальные программы- драйвера – для непосредственной работой с СУБД. Такие драйверы выпускаются для каждой промышленной СУБД и их настройка осуществляется при помощи специального редактора, называемого SQL Explorer. В поставку BDE входит два набора драйверов: Для работы с файл-серверными СУБД dBASE, Paradox, FoxPro, Access и данные в текстовом формате; Для работы с клиент-серверными СУБД InterBase, IBM DB2, Informix, ORACLE, Sybase, Microsoft SQL Server. 3.3. Создание базы данных Для создания таблиц в системе Borland C++ Builder имеется приложение Database Desktop , которое вызывается командой Tools->Database Desktop (Сервис->Работа с автономной СУБД). Новая таблица создается нажатием File->New->Table.


В открывшимся диалоговом окне нужно выбрать формат таблицы, например, Paradox 7, и щелкнуть по кнопке ОК. Появляется следующее окно для формирования структуры создаваемой таблицы: в первом столбце автоматически указывается порядковый номер поля, во втором – имя поля (можно набирать русское название); в третьем – тип поля; в четвертом – размер поля (для текстовых); в пятом – указывается, является ли поле ключевым. Обычно каждая таблица содержит ключевое поле, которое содержит уникальный идентификатор, позволяющий отличить одну запись от другой. Например, в таблице, содержащей данные о силовых трансформаторах, в качестве ключевого поля может быть использован код фирмы-изготовителя, а другая таблица для каждого значения кода фирмы-изготовителя содержит подробные координаты фирмы и ее дистибьютеров. Обычно в качестве ключей используются цифровые значения. Наличие ключевого слова в таблице является необязательным. С понятием ключа тесно связано понятие индекса. Если таблица предназначена для выдачи наборов данных на основании всевозможных запросов, то такую таблицу желательно проиндексировать по тем полям, которые будут использоваться в запросах. В СУБД Paradox7 ключевое поле всегда проиндексировано, при этом в других полях можно добавить неограниченное число вторичных индексов. Ключевое поле обычно указывают первым, при этом тип ключевого поля желательно выбрать таким образом, чтобы соблюдалась его уникальность для каждой записи, а это может быть достигнуто заданием номеров 1, 2, … . Это достигается щелчком правой кнопкой мыши по области поля Type и выбором в контекстном меню значения +(Autoincrement). Указание того, что поле ключевое достигается нажатием на клавишу «Пробел» в столбце Key. Флажок Required Field предназначен для указания обязательности заполнения этого поля при добавлении новой записи – если флажок установлен, то заполнение поля обязательно, если же нет, то необязательно. Переход к новому полю осуществляется при помощи нажатия на клавишу Enter. Запись сформированной базы данных осуществляется при помощи нажатия команды Save As , при этом появляется диалоговое окно, в котором нужно указать имя базы, путь к ней и соответствующий этому пути алиас – код пути в поле Alias.


При работе с ^ СУБД Paradox7 в качестве типов полей могут быть выбраны следующие: Символ Размер Тип Примечание A 1-255 Alpha Строка символов – буквы, цифры, печатные символы N Number Число – знак, цифры, десятичная точка $ Money Денежное поле S Short Целые числа от -32767 до 32767 I Long Integer Целые числа от -2147483648 до 2147483647 # 0-32 BCD Числа в ВСD формате D Date Дата T Time Время @ Timestamp Дата и время M 1-240 Memo Текстовая информация, не помещающаяся в поле типа Alpha F 0-240 Formated Memo Форматированный текст G 0-240 Graphics Графическая информация в .BMP, .PCX, .TIF, .GIF, и .EPS форматах O 0-240 OLE Информация любого типа в форматах других приложений L Logical Логическая информация + Autoincrement Приращение B 0-240 Binary Информация в бинарном формате Y 1-255 Bytes Биты информации 3.3. Работа с СУБД в системе Borland C++ Builder
Используя ^ Borland C++ Builder, можно создать приложения, работающие как с однопользовательскими базами данных (БД), так и с серверными СУБД, такими как Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, а также с ODBC-источниками.

Набор данных в C++ Builder - это объект, состоящий из набора записей, каждая из которых, в свою очередь, состоит из полей, и указателя текущей записи. Набор данных может иметь полное соответствие с реально существующей таблицей или быть результатом запроса, он может быть частью таблицы или объединять между собой несколько таблиц.

Набор данных в ^ C++ Builder является потомком абстрактного класса TDataSet (абстрактный класс - это класс, от которого можно порождать другие классы, но нельзя создать экземпляр объекта данного класса). Например, классы TQuery, TTable и TStoredProc, содержащиеся на странице палитры компонентов Data Access, - наследники TDBDataSet, который, в свою очередь, является наследником TDataSet. TDataSet содержит абстракции, необходимые для непосредственного управления таблицами или запросами, обеспечивая средства для того, чтобы открыть таблицу или выполнить запрос и перемещаться по строкам.

^ Компонент TDataSource
Компонент DataSource действует как посредник между компонентами TDataSet (TTable, TQuery, TStoredProc) и компонентами Data Controls - элементами управления, обеспечивающими представление данных на форме. Компоненты TDataSet управляют связями с библиотекой Borland Database Engine (BDE), а компонент DataSource управляет связями с данными в компонентах Data Controls.

В типичных приложениях БД компонент DataSource, как правило, связан с одним компоненом TDataSet (TTable или TQuery) и с одним или более компонентами Data Controls (такими, как DBGrid, DBEdit и др.). Связь этого компонента с компонентами TDataSet и DataControls осуществляется с использованием следующих свойств и событий:

Свойство ^ DataSet компонента DataSource идентифицирует имя компонента TDataSet. Можно присвоить значение свойству DataSet на этапе выполнения или с помощью инспектора объектов на этапе проектирования.

Свойство Enabled компонента DataSource активизирует или останавливает взаимосвязь между компонентами TDataSource и Data Controls. Если значение свойства Enabled равно true, то компоненты Data Controls, связанные с TDataSource, воспринимают изменения набора данных. Использование свойства Enabled позволяет временно разъединять визуальные компоненты Data Controls и TDataSource, например, для того, чтобы в случае поиска в таблице с большим количеством записей не отображать на экране пролистывание всей таблицы.

Свойство AutoEdit компонента DataSource контролирует, как инициируется редактирование в компонентах ^ Data Controls. Если значение свойства AutoEdit равно true, то режим редактирования начинается непосредственно при получении фокуса компонентом Data Controls, связанным с данным компонентом TDataSet. В противном случае режим редактирования начинается, когда вызывается метод Edit компонента TDataSet, например, после нажатия пользователем кнопки Edit на компоненте DBNavigator. ·

Событие OnDataChange компонента DataSource наступает, когда происходит изменение значения поля, записи, таблицы, запроса.

Cобытие OnUpdateData компонента DataSource наступает, когда пользователь пытается изменить текущую запись в TDataSet. Обработчик этого события следует создавать, когда требуется соблюсти условия ссылочной целостности или ограничения, накладываемые на значения полей изменяемой базы данных.
^ Компонент TTable
Наиболее простым способом обращения к таблицам баз данных является использование компонента TTable, предоставляющего доступ к одной таблице. Для этой цели наиболее часто используются следующие свойства:

^ Active - указывает, открыта (true) или нет (false) данная таблица.

DatabaseName - имя каталога, содержащего искомую таблицу, либо псевдоним (alias) удаленной БД (псевдонимы устанавливаются с помощью утилиты конфигурации BDE, описание которой присутствует во многих источниках, посвященных продуктам Borland, либо с помощью SQL Explorer, вызываемого с помощью пункта меню Database/Explore). Это свойство может быть изменено только в случае, если таблица закрыта (ее свойство Active равно false), например:


Table1->Active = false;

Table1->DatabaseName = "BCDEMOS"

Table1->Active = true;


TableName - имя таблицы.

Exclusive - если это свойство принимает значение true, то никакой другой пользователь не может открыть таблицу, если она открыта данным приложением. Если это свойство равно false (значение по умолчанию), то другие пользователи могут открывать эту таблицу.

IndexName - идентифицирует вторичный индекс для таблицы. Это свойство нельзя изменить, пока таблица открыта.

MasterFields - определяет имя поля для создания связи с другой таблицей.

MasterSource - имя компонента TDataSource, с помощью которого TTable будет получать данные из связанной таблицы.

ReadOnly - если это свойство равно true, таблица открыта в режиме "только для чтения". Нельзя изменить свойство ReadOnly, пока таблица открыта.

Eof, Bof - эти свойства принимают значение true, когда указатель текущей записи расположен на последней или соответственно первой записи таблицы.

^ Fields - массив объектов TField. Используя это свойство, можно обращаться к полям по номеру, что удобно, когда заранее неизвестна структура таблицы:


Edit1->Text=Table1->Fields[2]->AsString;


Наиболее часто при работе с компонентом TTable используются следующие методы:

^ Open и Close устанавливают значения свойства Active равными True и False соответственно.

Refresh позволяет заново считать набор данных из БД.

First, Last, Next, Prior перемещают указатель текущей записи на первую, последнюю, следующую и предыдущую записи соответственно, например:


Table1->First();

while (!Table1->Eof) {

/* что-то делаем...

Table1->Next(); };


MoveBy перемещает указатель на указанное число строк (оно может быть и отрицательным) в пределах таблицы

^ Insert, Edit, Delete, Append - переводят таблицу в режимы вставки записи, редактирования, удаления, добавления записи соответственно.

Post - осуществляет физическое сохранение измененных данных. Например:


Table2->Insert();

Table2->Fields[0]->AsInteger = 100;

Table2->Fields[1]->AsString =Edit1->Text;

Table2->Post();


Cancel - отменяет внесенные изменения, не сохраненные физически.

FieldByName - предоставляет возможность обращения к данным в полях по имени поля:

S=Table1->FieldByName("area")->AsString;

SetKey переключает таблицу в режим поиска.

GotoKey начинает поиск строки, значение Fields[n] которой равно выбранному, где n - номер колонки таблицы, начиная с 0:


Table1->SetKey();

Table1->Fields[0]->AsString=Edit1->Text;

Table1->GotoKey();


SetRangeStart, SetRangeEnd, ApplyRange позволяют выбрать нужные строки на основе диапазона значений какого-либо поля.


Table1->SetRangeStart();

Table1->Fields[0]->AsString = Edit1->Text;

Table1->SetRangeEnd();

Table1->Fields[0]->AsString = Edit2->Text;

Table1->ApplyRange();


FreeBookmark, GetBookmark, GotoBookmark- позволяют создать помеченную строку в таблице и затем вернуться к ней позже. Методы Bookmark используют класс TBookmark. Метод GetBookmark устанавливает закладку на текущей строке таблицы. GotoBookmark осуществляет перемещение в таблице к строке, ранее отмеченной закладкой. Метод FreeBookmark используется для уничтожения объекта типа TBookmark:

TBookmark Marker =Table1->GetBookmark();

Table1->GotoBookmark(Marker);

Table1->FreeBookmark(Marker);


События компонента TTable позволяют строить и контролировать поведение приложений БД. Например, событие BeforePost наступает перед вставкой или изменением записи, событие AfterPost - после сохранения вставленной или измененной записи, событие AfterDelete - после удаления записи и т.д.

Чтобы внести компонент TTable в форму, нужно выполнить следующее:

Используя страницу Data Access палитры компонентов, разместить компонент TTable на форме или в модуле данных.

Свойству DatabaseName присвоить имя каталога, где находится БД, либо псевдонима БД.

Свойству TableName присвоить имя таблицы или выбрать таблицу из выпадающего списка.

Внести в форму компонент DataSource и установить значение свойства DataSet равным имени компонента TTable.

Внести компоненты Data Controls и связать их с компонентом DataSource для того, чтобы отобразить на экране данные из таблицы БД.
^ Компонент TField

Объекты класса TField являются свойством объекта TDataSet (напомним, что некоторые свойства объектов сами являются объектами с их собственными наборами свойств, и TField - один из них).

Свойство Fields объекта типа TDataSet позволяет обращаться к отдельным полям набора данных. Свойство ^ Fields является массивом или набором объектов TField, динамически создающимся во время выполнения приложения. Элементы массива соответствуют колонкам таблицы.

Объект TField не делает никаких предположений относительно типов данных, с которыми он связан. Он имеет несколько свойств, позволяющих установить или вернуть обратно значения поля, например, AsString, AsBoolean, AsFloat, AsInteger. Наиболее часто используются свойства Text (строка текста, выводимого в связанный с данным полем интерфейсный элемент) и FieldName (имя поля базы данных).

^ Fields Editor позволяет создать так называемый статический список полей таблицы, добавляемых к описанию класса формы. Когда впервые используются такие компоненты TDataSet, как компонент TTable или TQuery, список полей для них динамически генерируется в процессе выполнения приложения на основе имеющихся столбцов таблиц или результатов SQL-запроса. Fields Editor позволяет определить и затем модифицировать статический список компонентов Field на этапе проектирования приложения. При внесении колонок с использованием Fields Editor для каждого из полей, добавленных к TDataSet, возникают объекты TField, после чего можно увидеть эти поля в инспекторе объектов и использовать в приложениях их свойства, события и методы.

Использовать ^ Fields Editor нужно следующим образом:

Разместить компонент TTable или TQuery на форме.

Установить свойство DatabaseName для TTable или TQuery.

Установить свойство TableName компонента TTable или свойство SQL компонента TQuery.

Выбрать компонент TDataSet на форме и нажать правую клавишу мыши, после чего появится контекстное меню.

Из контекстного меню выбрать ^ Fields Еditor. Появится пустое окно с заголовком, совпадающим с именем компонента TTable.

Снова нажать правую клавишу мыши над пустым окном и из контекстного меню выбрать опцию Add Fields.

Имена всех колонок таблицы или запроса появятся в диалоговой панели Add Fields (рис.1.)



Рис. 1. Формирование списка полей

Выбрать поля, которые нужно внести в список объектов, и нажать OK.



Рис. 2. Сформированный список полей, доступных на этапе проектирования


Если требуется создать вычисляемое поле на основе имеющихся полей, нажать правую клавишу мыши и из контекстного меню выбрать ^ New Field для создания нового поля на основе существующего или для создания вычисляемого поля (в дальнейшем следует создать код обработчика события OnCalcFields компонента TTable, где и производятся необходимые вычисления).

Если необходимо удалить статическое поле из списка полей в наборе данных, нужно нажать правую клавишу мыши и из контекстного меню выбрать Delete.

После того, как в Fields Editor добавлены поля, они появятся в инспекторе объектов, а ссылки на них - в h-файле формы.

Если теперь применить операцию drag-and-drop к выделенным в Fields Editor полям, перенеся их на форму, то можно получить готовую форму с необходимым набором интерфейсных элементов (в нашем случае - DBEdit, позволяющий отображать и редактировать строковые, числовые, денежные и другие поля, чьи значения представимы в виде строки символов, и DBImage, позволяющий отображать графические поля и использовать Clipboard для их редактирования). Если к такой форме добавить компонент TDBNavigator (этот компонент реализует основные методы TTable и TQuery, связанные с редактированием данных) и связать его с имеющимся компонентом TDataSource, а затем скомпилировать проект, получим приложение для просмотра и редактирования данных в таблице.



Рис. 3. Результат переноса на форму полей из ^ Fields Editor


При работе Fields Editor создаются объекты, соответствующие видимым в инспекторе объектов полям. Эти объекты являются потомками объектного типа TField. ^ Таблица 1 описывает существующие классы таких объектов:


Таблица 1. Потомки TField

Потомок

Описание

TStringField

Текстовые данные фиксированной длины до 8192 символов.

TAutoIncField

Целые числа от -2,147,483,648 до 2,147,483,647. Предназначен для нумерации ст ок в наборе данных. Потомок TIntegerField.

TIntegerField

Целые числа от -2,147,483,648 до 2,147,483,647.

TSmallIntField

Целые числа от -32768 до 32767.

TWordField

Целые числа от 0 до 65535.

TFloatField

Действительные числа с абсолютной величиной от 1.2x10e-324 до 1.7x10e308 с точностью до 15-16 цифры.

TCurrencyField

Действительные числа с абсолютной величиной от 1.2x10e-324 до 1.7x10e308 с точностью до 15-16 цифры.

TBooleanField

Значения true или false.

TDateTimeField

Значения даты и времени.

TDateField

Значения даты.

TTimeField

Значения времени.

TBlobField

Произвольное поле данных без ограничений размера.

TBytesField

Произвольное поле данных без ограничений размера.

TVarBytesField

Произвольное поле данных до 65535 символов с фактической длиной, представленной в первых двух байтах.

TMemoField

Текст произвольной длины.

TGraphicField

Графическое поле произвольной длины, например, битовый массив.
^ Компонент TDBGrid
Компонент TDBGrid обеспечивает табличный способ отображения на экране строк данных из компонентов TTable или TQuery. Приложение может использовать TDBGrid для отображения, вставки, уничтожения, редактирования данных БД. Обычно DBGrid используется в сочетании с DBNavigator, хотя можно использовать и другие интерфейсные элементы, включив в их обработчики событий методы First, Last, Next, Ptior, Insert, Delete, Edit, Append, Post, Cancel компонента TTable.

Внешний вид таблицы (например, надписи в заголовках столбцов) может быть изменен с помощью редактора свойств ^ Columns Editor. Для вызова Columns Editor нужно либо выбрать соответствующую опцию в контекстном меню компонента DBGrid или щелкнуть мышью в колонке значений напротив свойства Columns в инспекторе объектов.




Рис. 4. Установка свойств столбцов DBGrid с помощью Columns Editor


Вторым способом получения контроля над характеристиками ^ DBGrid или другими компонентами является создание описанным выше способом статического набора компонентов TField. Имея компонент типа TField, созданный для каждого из полей в наборе данных, можно установить ширину, формат, маску, расположение, метку для отображения в DBGrid и другие характеристики.

Поля ^ Float, Integer и Date обладают свойством DisplayMask. Это свойство можно использовать, чтобы форматировать данные в компоненте DBGrid или другом компоненте Data Controls. Например, экранный формат mm-dd-yy может использоваться для размещения полей типа дата.

Некоторые компоненты ^ TField (например, TStringField) обладают свойством EditMask, которое можно установить, вводя данные в DBGrid и другие компоненты Data Controls. Для установки свойства EditMask нужно установить компонент Field в Object Inspector и выбрать свойство EditMask, после чего появится диалоговая панель Input Mask Editor, представленная на рис. 5. Чтобы проверить маску редактирования, нужно ввести значение в поле Test Input.




Рис. 5. Диалоговая панель Input Mask Editor

^ Пример 1. Разработка простейшего приложения

Попробуем создать простейшее приложение для редактирования таблицы БД. Для этого воспользуемся таблицей COUNTRY базы данных BCDEMOS, содержащейся в комплекте поставки C++ Builder.

Создадим новый проект и сохраним его главную форму как COUNT1.CPP, а сам проект как COUNT.MAK. Используя страницу Data Access палитры компонентов, разместим компоненты TTable и DataSource на форме. Установим свойство Database Name компонента Table1 равным BCDEMOS, свойство TableName равным COUNTRY.DB, а свойство Active равным true. Далее установим значение свойства DataSet компонента DataSource1 равным Table1.

Используя страницу Data Controls палитры компонентов, внесем компоненты DBGrid и DBNavigator в форму. Присвоим свойству DataSource обоих компонентов значение DataSource1.




Рис. 6. Главная форма приложения COUNT


Полученный проект можно скомпилировать и протестировать.

Отметим, что есть и более простой способ построить подобное приложение. Для этой цели можно воспользоваться утилитой ^ SQL Explorer, вызываемой с помощью пункта меню Database/Explore. Выбрав страницу Databases в левой части окна SQL Explorer и щелкнув на значке "+" возле имени соответствующей базы данных, нужно выбрать опцию Tables. Затем в правой части окна нужно выбрать закладку Summary и перетащить с помощью мыши значок с именем нужной таблицы (в нашем случае COUNTRY.DB) на пустую форму. На форме появятся компоненты TDBGrid, TDataSource и TTable. После этого следует добавить DBNavigator, связать его с TDataSource и сделать таблицу активной.




Рис. 7. SQL Explorer
^ Пример 2. Разработка приложения, использующего вычисляемое поле
Таблица, используемая
еще рефераты
Еще работы по разное