База данных в Delphi
База данных в Delphi.
С точки
зрения пользователей,
база данных Delphi –
это
программа,
которая обеспечивает работу с информацией,
в нашем случае - с информацией в электронном
виде. При работе с такой программой, которая
как правило выдаёт на экране монитора
таблицу, пользователь просматривая её
может найти интересующую его информацию.
Если программа, база
данных Delphi, позволяет, то он может
внести изменения или дополнить новую
информацию, а так же удалить ненужную.
С точки зрения программиста, база
данных Delphi - это набор файлов, содержащих
информацию.
Разрабатывая базу данных Delphi для пользователей,
программист создаёт программу, которая
обеспечивает работу с файлами данных.
В наше время существует достаточно большое
количество программных систем, позволяющих
создавать и использовать локальные
(dBASE, FoxPro, Access, Parandox)
и
удалённые (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL
Server) базы
данных Delphi.
В состав Delphi входят компоненты, позволяющие
создавать программы работы с файлами
данных, созданными различными системами:
от dBASE до Infomix
и Oracle. Delphi так же позволяет программисту,
используя утилиту Borland Database Desktop,
создавать файлы баз данных в различных
форматах.
Локальная
база данных Delphi.
Локальная база данных Delphi
– это файлы данных, то есть базы находятся
на одном (локальном) устройстве, в качестве
которого может выступать диск компьютора
или сетевой диск (другого компьютора
работающего в сети).
Для обеспечения разделения данных (доступа
к данным) между несколькими пользователями,
в качестве которых выступают программы
работающие на одном или нескольких компьюторах,
в локальных базах данных применяется
метод – блокировка файлов. Суть этого
метода в том, что пока данные используются
одним пользователем, другой пользователь
не может работать с этими данными, то
есть данные для него закрыты, заблокированы.
Access, dBASE, FoxPro, Parandox
– это локальные базы данных.
Удалённая база данных Delphi.
Файлы удалённой базы
находятся на удалённом компьюторе. При
этом каталоги удалённого компьютора
не могут рассматриваться как сетевые
диски.
Программа работы с удалённой
базой данных Delphi состоит
из двух частей: клиентской и серверной.
Клиентская часть программы, работающая
на компьюторе пользователя, обеспечивает
взаимодействие с серверной программой:
посредством запросов, передаваемых на
удалённый компьютор, предоставляет доступ
к данным.
Серверная часть программы, работающая
на удалённом компьюторе, принимает запросы,
выполняет их и пересылает данные клиентской
программе. Запросы представляют собой
команды, представленные на языке SQL
(Structured Query Language) – языке структурированных
запросов.
Программа, работающая на удалённом сервере,
проектиркется таким образом, чтобы обеспечить
одновремнный доступ к информации нескольким
пользователям. При этом для обеспечения
доступа к данным вместо механизма блокировки
файлов используют механизм
транзакций.
Транзакция = это некоторая последовательность
действий, которая должна быть обязательно
выполнена над данными перед тем , как
они будут переданы. В случае обнаружения
ошибки во время выполнения любого из
действий вся последовательность действий
, составляющая транзакцию, повторяется
снова. Следовательно, механизм транзакций
обеспечивает защиту от аппаратных сбоев.
Он так же обеспечивает возможность многопользовательского
доступа к данным.
Delphi работа с базами.
База
данных Delphi – это набор файлов (таблиц),
в которых находится информация. Как правило,
база данных Delphi
состоит из нескольких таблиц, которые
размещают в одном каталоге. Каталог для
новой базы создаётся обычным образом
средствами Windows. Таблицу можно создать,
воспользовавшись входящей в состав Delphi
утилитой Borland Database Desktop
или организовав SQL
– запрос к серверу базы
данных.
Так как для доступа к файлам (таблицам)
базы данных библиотека BDE использует
не имя каталога, в котором находятся файлы,
а его псевдоним, то перед тем, как приступить
к созданию таблиц новой базы данных, необходимо
создать псевдоним для этой базы данных.
Таким образом Delphi
работа с базами представляет собой
процесс создания
базы данных Delphi , который
может быть представлен как последовательность
следующих шагов:
- Создание каталога.
- Создание псевдонима.
- Создание таблиц.
Создание
каталога базы данных Delphi
Для Delphi работы с
базами необходимо создать каталог
(папку) для файлов базы данных , которая
создаётся обычным образом, например при
помощи Проводника. Обычно файлы локальной
базы данных помещают в отдельном подкаталоге
каталога программы работы с базой данных.
Создание псевдонима базы данных Delphi.
Так же для
Delphi работы с базами неоходим псевдоним
базы данных Delphi, которвый создаётся при
помощи входящей в Delphi утилиты BDE Administrator,
которая запускается из Windows выбором из
меню Программы/Borland
Delphi 7 команды
BDE Administrator.
Ниже на рисунке показан вид диалогового
окна BDE Administrator.
В левой части
окна, на вкладке Databases, перечислены
псевдонимы, зарегистрированные на данном
компьюторе. Для того чтобы создать
новый псевдоним, нужно из меню Object выбрать
команду New.Затем в открывшемся диалоговом
окне New Database Alias (новый псевдоним базы
данных) из списка Database Driver Name, в котором
перечислены зарегистрированные в системе
драйверы доступа к базам данных, нужно
выбрать драйвер для создаваемой базы
данных, фактически выбрать тип создаваемой
базы данных.
При создании псевдонима по умолчанию
предлагается драйвер STANDART (default driver), который
обеспечивает доступ к таблицам в формате
Parandox.
После выбора драйвера и щелчка на на кнопке OK в список псевдонимов будет добавлен новый элемент. См. рис. ниже Регистрация нового псевдонима.
После этого
нужно изменить автоматически созданное
администратором имя псевдонима
и задать путь к файлам базы данных,
для которой создаётся псевдоним.
Имя псевдонима можно изменить обычным
способом для Windows, то есть щёлкнуть правой
кнопкой мыши на имени псевдонима (на вкладке
Database), и в появившемся контекстном меню
выбрать команду Rename(переименовать) и
в открышемся диалоговом окне ввести новое
имя.
Путь к файлам базы данных можно ввести
на вкладке Definition в поле Path с клавиатуры
или воспользоваться стандартным диалоговым
окном Select Directory (выбор каталога), которое
открывается щелчком на кнопке с тремя
точками, находящейся в конце поля Path.
Ниже в качестве примера приведён вид
окна BDE Administrator после создания псевдонима
Peterburg для базы данных « Архитектурные
памятники Санкт - Петербурга».
Для того чтобы созданный псевдоним был
зарегистрированный в файле конфигурации
(Idapi.cfg), необходимо в меню Object выбрать
команду Apply (применить). В открывшемся
диалоговом окне Confirm следует подтвердить
необходимость сохранения изменений в
файле конфигурации.
Delphi создать базу.
Delphi
создать базу – это прежде всего создании
таблицы базы данных.
Важным моментом при создании
таблицы базы данных Delphi
является распределение информации между
полями записи. Так как информация между
полями может быть распределена различным
образом.
Например, сведения об исторических памятниках
Санкт - Петербурга могут быть организованы
в виде записей, состоящих из полей «Памятник» и «Историческая
справка» или
из полей «Памятник», «Архитектор», «Год» и «Историческая
справка».
В первом варианте поле «Памятник» будет
содержать название памятника, например
Эрмитаж, а поле «Историческая справка»
- всю остальную информацию, Пользователь
сможет найти информацию об интересующем
его памятнике только по названию. При
втором варианте организации записи пользователь
сможет найти информацию о памятниках,
архитектором которых является конкретный
зодчий, или о памятниках, возведённых
в данный исторический период.
После всего этого можно сформулировать
следующее правило: если предполагается
, что во время использования базы данных
будет выполнятся выборка информации
по некоторому критерию, то информацию,
обеспечивающую возможность этой выборки,
следует поместить в отдельном поле.
Далее после
того как определены поля записи, необходимо
выполнить распределение полей
по таблицам. В простой базе данных (как
в нашем случае) все поля можно разместить
в одной таблице. В сложной базе данных
поля распределяют по нескольким таблицам,
и вводом некоторой дополнительной информации,
однозначно иденфицирующую каждую запись,
обеспечивающую связь между таблицами,
такая база данных называется реляционной.
В Delphi создать базу,
таблицу можно только после того как
определена структура записей базы данных.
Таблицы создаются при помощи входящей
в состав Delphi утилиты Database Desktop.
Утилита Database Desktop
позволяет выполнить все необходимые
при работе с базами данных действия. Утилита
обеспечивает создание, просмотр и модефикацию
таблиц баз данных различных форматов
(Access, dBASE, FoxPro, Parandox).
Кроме того, утилита позволяет выполнять
выборку информации путём создания запросов.
Для того чтобы создать новую таблицу,
нужно выбором из меню Tools
команды Database Desktop
запустить Database Desktop.
Затем в появившемся окне
Утилита Database Desktop надо из меню File выбрать
команду New и в появившемся списке выбрать
тип создаваемого файла – Parandox.
Ниже находится рисунок диалогового окна
Database Desktop.
Затем в открывшемся диалоговом
окне Create Table следует выбрать тип создаваемой
таблицы (по умолчанию
– Parandox)
В результате открывается диалоговое окно Create Parandox 7 Table, где можно определить структуру записей таблицы.
Для каждого
поля таблицы необходимо задать имя,
тип и, если нужно, размер поля. Имя
поля необходимо для доступа к данным.
В качестве имени поля, которое вводится
в колонке Field Name, можно использовать последовательность
из букв латинского алфавита и цифр длиной
не более 25 символов.
Тип поля определяет тип данных, которые
могут быть помещены в поле. Тип задаётся
вводом в колонку Type
символьной константы.
Типы полей и соответствующие
им константы см. таблицу.
|
Константа, определяющая
тип поля, может быть введена с
клавиатуры или путём выбора типа
поля из списка (см. рис), который появляется
при щелчке правой кнопки мыши в
колонке Tepe или при нажатии клавиши
«пробел».
Рис.
Одно или несколько полей можно поместить
как ключевые. Ключевое полеопределяет
логический порядок следования записей
в таблице. Например, еслисимвольное (тип
Alpha) поле Fam (фамилия) поместить как ключевое,
то при выводе таблицы записи будут упорядочены
в соответствии с алфавитным порядком
фамилий. Если поле Fam не помечать как ключевое,
записи будут выводится в том порядке,
в котором они были внесены в таблицу.
Следует обратить внимание на то, что в
таблице не может быть двух записей с одинаковым
содержанием ключевых полей. Поэтому в
рассматриваемом примере ключевыми полями
должны быть поля Fam (Фамилия) или Name (Имя).
Тогда в таблицу можно внести информацию
об однофамильцах. Однако по прежнему
нельзя внести информацию об однофамильцах
, у которых совпадают имена. Поэтому на
основании выше изложенного в качестве
ключевого поля обычно выбирают поле,
которое содержит уникальную информацию.
В качестве примера ,для таблицы , содержащей
список людей, в качестве ключевого поля
можно выбрать поле Pass (Паспорт).
Для того чтобы пометить поле как ключевое,
необходимо выполнить двойной щелчок
в колонке Key. Следует так же обратить
внимание на то, что ключевые слова должны
быть сгруппированы в верхней части таблицы.
Если данные, для хранения которых предназначено
поле, должны обязательно присутствовать
в записи, то следует установить флажок
Required Field. Например, очевидено, что поле
Fam (Фамилия) обязательно должно быть заполнено,
в то время как поле Tel (Телефон) может оставаться
пустым. Если значение, записываемое в
поле, должно находится в определённом
диапазоне, то вводом значений в поле
Minimum value (Минимальное значение) и Maximum
value(Максимальное значение) можно задать
границы диапазона.
Поле Default value позволяет задать значение
по умолчанию, которое будет автоматически
записываться в поле при добавление к
таблице новой записи.
Поле Picture позволяет задать шаблон,
используя который можно контролировать
правильность вводимой в поле информации.
Шаблон представляет собой последовательность
обычных и специальных символов. Спициальные
символы приведены в таблице ниже.
|
Во время ввода
информации в позицию поля, которой
соответствует специальный
Например, пусть поле Tel типа A (строка
символов) предназначено для хранения
номера телефона, и программа, работающая
с базой данных,предполагает, что номер
телефона должен быть представлен в обычном
виде, то есть в виде последовательности
сгруппированных, разделённых дефисами
цифр. В этом случае в поле Picture
следует записать шаблон : ###-##-##. При вводе
информации в поле Tel будут появлятся
только цифры (нажатие клавиш с другими
символами игнорируются), причём после
ввода третьей и пятой цифр в поле будут
автоматически добавлены дефисы.
Некоторые элементы данных поля могут
быть необязательными, например, код города
для номера телефона. Элементы шаблона,
обеспечивающие ввод необязательных данных,
заключаются в квадратные скобки. Например,
шаблон [(###)] ###-##-## позволяет вводить в
поле номер телефона как заключённым в
скобки кодом города, так и без кода.
Шаблоны позволяют не только контролировать
правильность вводимых в поле данных путём
блокирования ввода неверных символов,
но так же обеспечивает автоматизацию
ввода данных. Это достигается путём указания
в шаблоне в квадратных или фигурных скобках
списка допустимых значений содержимого
поля.
Например, если полю Address задать шаблон
{Санкт – Петербург, Москва, Воронеж}*@
или [Санкт – Петербург, Москва, Воронеж]
*@,то во время вводаданных в это поле названия
соотвествующего города будет появлятся
сразу после ввода одной из букв: с,
м или в. Отличие фигурных скобок
от квадратных, а следовательно и этих
шаблонов состоит в том , что в первом шаблоне
содержимое поле должно обязательно начинаться
с названия одного из перечисленных в
списке городов, а во втором – город может
называться по другому, но его название
придётся вводить полностью.
После того как будет определена структура
таблицы, таблицу нужно сохранить. Для
этого небходимо нажать кнопку Save As
(см. рис.). В результате открывается окно
Save Table As. В этом окне из списка Alias нужно
выбрать псевдоним
базы данных, частью которой является
созданная таблица, а поле имя
файла ввести имя файла, в котором нужно
сохранить созданную таблицу(см. рис.)
рис..
Перед тем как нажать кнопку сохранить
и установить флажок Display table ,
то в результате нажатия кнопки сохранить
открывается диалоговое
окно Table (см. рис.), в котором можно внести
данные в только что созданную таблицу.
Если таблица базы данных не доступна, то для того чтобы ввести данные в таблицу её нужно открыть . Для этого нужно из меню File выбрать команду Open|Table, затем в появившемся диалоговом окне Open Table в спискеAlias выбрать псевдоним нужной базы данных и таблицу. Следует обратить внимание, что таблица будет открыта в режиме просмотра, в котором содержимое таблицы изменить нельзя.
Запись в базу данных в Delphi
Чтобы в таблицу
можно было вводить данные, то есть сделать
запись в базу данных Delphi нужно активировать
режим редактирования таблицы, для этого
необходимо из меню Table выбрать
команду Edit Data.
Данные в поля записи вводятся с клавиатуры
обычным образом. Для перехода к следующему
полю нужно нажать клавишу “Enter”.
Если поле является последним полем последней
записи, то в результате нажатия клавиши
“Enter” в таблицу будет добавлена ещё
одна запись.
Если во время заполнения таблицы необходимо
внести изменения в какое то уже заполненное
поле, то следует выбрать это поле , воспользовавшись
клавишами перемещения курсора, нажать
клавишу “F2” и внести нужные изменения,
то есть сделать
запись в базу данных Delphi.
Если при вводе данных в таблицу буквы русского алфавита отображаются неверно, то надо изменить шрифт. Для этого необходимо в меню Edit выбрать команду Preferens и в появившемся диалоговом окне, во вкладке General , щёлкнуть на кнопке Change. В результате этих действий открывается диалоговое окно Change Font (см.рис.), в котором нужно выбрать русифицированный шрифт.
Следует обратить внимание , что Windows XP
используется шрифты типа Open Type, в то время
как программа Database Desktop ориентирована
на работу со шрифтами True Type. После этого
надо завершить работу с Database Desktop,
так как внесённые в конфигурацию изменения
будут действительны только после перезапуска
утилиты.
Программа управления базой данных.
Процес создания
программы управления
базой данных рассмотрим на примере
создания базы данных «Архитектурные
памятники «Санкт-Петербурга»( см табл.).
Перед тем как приступить непосредственно
к разработке программы
управления базой данных, необходимо,
используя утилиту Database Desktop,
создать файл данных (таблицу) и добавить
в неё несколько записей.
Ниже перечислены поля таблицы monuments (монументы,
памятники). В таблицу monuments можно внести
информацию о памятниках «Санкт-Петербурга»(см
табл.).
|
| Памятники Сант-Петербурга | |||
| Памятник | Архитектор | Историческая справка | Иллюстрация |
| Адмиралтейство | А. Д. Захаров | Здание Адмиралтейства (1806-1823г.). Высота-72 м. |
- |
| Александровская колонна |
Огюст Монферран | Памятник победы
России над войсками Наполеона-1812 году . (30 августа 1834 г, 47,5м,600 т.) |
- |
| Зимний дворец | Ф.Б. Растрелли | Зимний дворец
много раз менял свой облик. Последний раз по проекту Растрелли(1754-1762г.) |
rostr.bmp |
| Исаакиевский собор | Огюст Монферран | Исаакиевский
собор 4 ый по счету, стали возводить в 1818 году по 1858 год. (40 лет.) |
isaak.bmp |
Примечание. В
папке «Питер- data» есть файлы с
изображением памятников Санкт –
Петербурга.
Сейчас можно приступить к разработке
программы управления
базой данных. Методика разработки
приложения работы с базой данных ни чем
не отличается от методики создания обычной
программы: к форме добавляются необходимые
компоненты, устанавливаются им свойства,
разрабатываются необходимые процедуры
обработки событий.
Программа управления базой данных должна содержать компоненты, обеспечивающие доступ к данным возможность просмотра и редактирования содержимого полей. Компоненты доступа данных находятся на вкладках Data Access палитры компонентов, а компоненты отображения данных - на вкладке Data Controls.
Доступ к базе данных (таблице)
Для доступа к базе данных (таблице) программа управления базой данных должна содержать компоненты Database, Table, Query и DataSource, значки которых находятся на вкладках Data Access и BDE палитры компонентов.
Компонент Database представляет базу
данных как единое целое, то есть совокупность
таблиц, а компонент Table – одну
из таблиц базы данных.
КомпонентDataSource (источник данных)
обеспечивает связь компонента отображения-
редактирования данных (например, компонента
DBGrid ) и источника данных, в качестве
которого может выступать таблица(компонент
Table) или результат выполнения
SQL – запроса к таблице (компонент SQL
). Компонент DataSource позволяет оперативно
выбирать источник данных, использовать
один и тот же компонент, например,
DBGrid для отображения данных из таблицы
или результата выполненияSQL -
запроса к этой таблице. Механизм взаимодействия
компонентов отображения - редактирования
данных с данными через компонент DataSource
иллюстрирует рис. ниже.
В простейшем случае, когда база данных
представляет собой одну таблицу, приложение
– программа
управления базой данных
должна содежать один компонент Table
и один компонент DataSource.
Ниже в таблицах
перечислены свойства компонента Table
и DataSource
| Cвойства компонента Table | ||
| Свойство | Значение | Определяет |
| Name | Table1 | Имя компонента.Используется для доступа к свойствам компонента |
| DatabaseName | Peterburg | Имя базы данных,
частью которой является таблица. В качестве значения следует использовать псевдоним базы данных. |
| TableName | monuments.db | Имя файла данных
(таблицы данных), для доступа к которому используется компонент. |
| TableType | - | Тип таблицы. Таблица
может быть набором данных в формате Paradox(ttParadox), dBase(ttdBase) , FoxPro(ttFoxPro) или представлять собой форматированный текстовый файл(ttASC||) |
| Active | True | Признак активации
файла данных (таблицы). В результате присвоения значения True происходит открытие файла таблицы |
Во время разработки формы приложения значения свойств DatabaseName и TableName задаются путём выбора из списков. В списке DatabaseName перечислены все зарегистрированные псевдонимы, а в списке TableName – имена файлов таблиц, которые находятся в соответствующем псевдониму каталоге.
| Cвойства компонента DataSource | ||
| Свойство | Значение | Определяет |
| Name | DataSource1 | Имя компонента.Используется для доступа к свойствам компонента |
| DataSet | Table1 | Имя компонента,представляющего собой входные данные. |
Программа просмотра базы данных
Пользователь
может просматривать базу данных
с помощью «программы
просмотра базы данных» в режиме формы
или в режиме таблицы. В режиме
формы можно
видеть только одну запись, а в режиме
таблицы – несколько записей одновременно.
Довольно часто эти два режима комбинируют.
Краткая информация (содержимое некоторых
ключевых полей) выводятся в табличной
форме, а при необходимости видеть содержимое
всех полей записи выполняется переключение
в режим формы.
Компоненты, обеспечивающие просмотр
и редактирование содержимого полей базы
данных, находятся на вкладке Data Controls
(см. рис.).
Просмотр базы данных в режиме формы
Для того чтобы
обеспечить просмотр
базы данных в режиме
формы, в форму программы просмотра
базы данных нужно добавить компоненты,
обеспечивающие просмотр и если нужно,
редактирование полей записи, причём по
одному компоненту для каждого поля.
Компонент DBText позволяет только просматривать
содержимое поля, а компоненты DBEdit
и DBMemo - просматривать и редактировать.
Ниже в таблице перечислены некоторые
свойства этих компонентов. Свойства перечислены
в том порядке, в котором следует устанавливать
их значения после добавления их на форму
нашего приложения.
|

- База данных в Интернете
- База данных Гостиница
- База данных для работников регистратуры поликлиники
- База данных и системы управления базами данных,распределение обработки информации
- База данных книжного магазина
- База данных о детях
- База-данных Птицефабрике
- База данных (4)
- База данных (5)
- База данных (6)
- База Данных Access
- База данных Access. Особенности работы в многопользовательском режиме
- База данных MySQL
- База Данных "Библиотека"