![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сравнительная характеристика dBase и ParadoxСодержание книги
Поиск на нашем сайте
Практическая работа
Создание простейшего приложения для работы с таблицами данных. Выберите пункт главного меню Delphi Tools/Database Desktop для того, чтобы запустить программу Database Desktop, с помощью которого можно создавать таблицы, изменять их структуру и назначать им индексы. После запуска Database Desktop выберите меню File/New/Table, чтобы начать процесс создания новой таблицы. После выбора этой команды на экране появляется окно Create Table, в котором нужно выбрать формат (тип) таблицы (например, Paradox 7). После выбора формата таблицы появляется окно определения структуры таблицы БД.
В этом окне находятся следующие поля:
Каждая таблица должна иметь хотя бы одно поле. [Insert] – вставка поля; [Ctrl]+[Delete] – удаление поля (в окне определения и изменения структуры таблицы).
Определим поля, входящие в таблицу «Товары». Введите имя поля Tovar в столбец Field Name, в поле Type выберите тип поля Alpha и установите размер поля 20. Задайте для таблицы следующую структуру:
Для каждого поля можно определить требование обязательного его заполнения значением. Для этого, переходя от поля к полю, включайте переключатели Required Field. Другие поля служат для наложения ограничений назначение поля:
Отсутствия значения в одном из полей означает отсутствие ограничений на значение поля.
После определения структуры таблицы ее необходимо сохранить, нажав на кнопку Save as…,и в появившемся окне указать расположение таблицы на диске и задать ее имя. Сохраните созданную таблицу на диске под именем Tovar.db в папке Baza на рабочем диске. Закройте Database Desktop. Перейдите в главное окно Delphi. Подготовим форму для нашего приложения, с помощью которого можно перемещаться по записям таблицы БД, просматривать и редактировать поля, удалять записи из таблицы и вставлять новые. Разместите на форме компоненты Table, DataSource (п. к. DataAccess) и DBGrid, DBNavigator (п. к. DataControls), в окне инспектора объектов установите для них свойства:
Запустите программу и заполните созданную вами таблицу (10 записей, 11-я – пустая). Чтобы добавилась новая запись, установите курсор в последнем поле таблицы и нажмите [Tab] на клавиатуре. Закройте работающую программу и установите для компонента Table1 в свойстве Active значение False и сразу же значение True. В окне формы в компоненте DBGrid вы увидите записи.
Компонент DataSource1(источник данных) является связующим элементом между компонентами доступа к данным (Table1 – соединен с реальной таблицей БД) и визуальными компонентами отображения данных (DBGrid1 – отображает содержимое таблицы в виде сетки).
Свойство VisibleButtons типа TButtonSet – определяет состав видимых кнопок:
Свойство ConfirmDelete типа Boolean – выдает на экран окно для подтверждения удаления записи (True – по умолчанию), = False – запись удаляется без подтверждения. Свойство Flat типа Boolean – управляет внешним видом кнопок =False – кнопки отображаются в объемном виде; =True – плоский вид кнопок. Свойство DataSource – связывает навигатор с набором данных. Самостоятельная работа Создайте таблицы, относящиеся к БД: § Автосалон; § Магазин «Мороженное»; § Музыкальная картотека; § Зоомагазин; § Записная книжка. Заполнить таблицы данными (10-12 записей) и сохранить в папке Baza на рабочем диске. Глава II. Наборы данных
Набор данных Таблицы БД располагаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, используются наборы данных (НД). В терминах Delphi набор данных – это совокупность записей, взятых из одной или нескольких таблиц БД. НД является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таблицы и НД напоминает взаимодействие физического файла и файловой переменной. В Delphi для работы с наборами данных таблиц применяются несколько компонент, но наиболее универсальным и часто используемыми являются НД Table и Query. Компонент Table представляет собой набор данных, который в некоторый момент времени может быть связан с одной таблицей БД. Связь между таблицей и компонентом Table устанавливается через его свойство TableName, который определяет имя таблицы. Для выполнения операций с НД используются два способа доступа к данным: навигационный – заключается в обработке каждой отдельной записи НД. При навигационном способе доступа каждый НД имеет невидимый указатель текущей записи, который определяет запись, с которой могут выполняться такие операции, как редактирование, удаление; реляционный – основан на обработке группы записей. При реляционном способе доступа для задания операций используются средства языка структурированных запросов – SQL (Structured Query Language). Практическая работа Создать приложение для просмотра и редактирования разных таблиц. Пользователь может выбирать таблицу, данные которой выводятся в сетке DBGrid1. Выбор осуществляется в диалоге открытия файла, который вызывается при нажатии на кнопку «Открыть другую таблицу». После выбора таблицы ее имя устанавливается в качестве значения свойства TableName набора данных Table1. При задании расположения БД программным способом НД предварительно необходимо закрыть (свойство Active = False). Расположите на форме компоненты, показанные на рисунке. В компоненте DBGrid должна отображаться таблица Tovar.db
Напишите обработчик события OnClick для кнопки «Открыть другую таблицу»: procedure TForm1.Button1Click(Sender: TObject); Begin OpenDialog1.Filter:= 'Таблицы (*.db;*.dbf) | *.db;*.dbf | Все файлы | *.*'; If OpenDialog1.Execute then Begin table1.Active:=false; table1.tablename:=Opendialog1.FileName; table1.Active:=true; end; end; Напишите обработчик события OnCreate для формы: procedure TForm1.FormCreate(Sender: TObject); Begin DataSource1.DataSet:=Table1; DBGrid1.DataSource:=DataSource1;
end;
Запустите программу и нажмите на кнопку «Открыть другую таблицу». В появившемся диалоговом окне зайдите в папку Baza и двойным щелчком выберите любую таблицу. Самостоятельная работа Для таблиц формата dBase и Paradox записи, составляющие НД, нумеруются с 1. Чтобы определить номер текущей записи НД существует метод RecNo. Выполните следующие задания: 1. При щелчке по записям таблицы выведите в поле Edit номер записи, по которой щелкнули мышью. 2. Осуществите переход на запись с указанным в поле Edit номером.
Число записей, составляющих НД, определяет свойство RecordCount типа Longint. Это свойство доступно для чтения при выполнении приложения. Приведем пример, в котором производится перебор всех записей НД (Общая схема обработки всех записей НД): var i:integer; … Table1.First; //переход к первой записи НД for i:=1 to Table1.RecordCount do Begin //здесь можно расположить операторы, которые обрабатывают одну запись НД Table1.Next; //переход к следующей записи НД end; Режимы наборов данных
Наборы данных могут находиться в различных режимах. Текущий режим НД определяет свойство State. Оно доступно для чтения во время выполнения приложения и может быть использовано только для текущего режима. Для перевода данных в тот или иной режим применяются специальные методы. НД может находиться в одном из следующих режимов: § dsInactive – НД закрыт и неактивен, доступ к его данным невозможен. § dsBrowse – режим просмотра, в котором осуществляется перемещение по записям НД и просмотр данных. § dsEdit – редактирование текущей записи. § dsInsert – вставка новой записи. § dsSetKey – поиск записи, удовлетворяющей заданному критерию. § dsCalcField – выполняется расчет вычисляемых полей. § dsFilter – выполняется фильтрация записей. Связи между режимами наборов данных можно отобразить в виде схемы:
Практическая работа
Создадим приложение, работающее с таблицами данных. Реализуем добавление, удаление, изменение и сохранение записей в таблице. Поставьте на форму компоненты Table, DataSource, DBGrid для работы с таблицей Tovar.db. Свяжите их между собой. Поставьте 5 кнопок Button, заголовки которых будут соответственно «Добавить», «Изменить», «Запомнить», «Удалить», «Отменить». Опишем процедуры для каждой кнопки: procedure TForm1.Button1Click(Sender: TObject); Begin if Table1.State= dsBrowse then Table1.Insert; end;
procedure TForm1.Button2Click(Sender: TObject); Begin if Table1.State= dsBrowse then Table1.Edit; end;
procedure TForm1.Button3Click(Sender: TObject); Begin if Table1.State= dsBrowse then if MessageDlg ('Удалить запись?', mtConfirmation, [mbYes, mbNo],0)=mrYes then
Table1.Delete; end;
procedure TForm1.Button4Click(Sender: TObject); Begin if Table1.State in [dsInsert, dsEdit] then Table1.Post; end; procedure TForm1.Button5Click(Sender: TObject); Begin if Table1.State in [dsInsert, dsEdit] then Table1.Cancel; end;
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-23; просмотров: 1135; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.216.202 (0.008 с.) |