Базы данных на Delphi 7 - Сергей Николаевич Талипов 2 стр.


end;


* * * *

Table1.Edit;

Table1.FieldByName(Name).AsString := Fred;

Table1.Post;

* * * *


  Table1.Insert;

  Table1['Name'] := 'Russia';

  Table1['Sity'] := 'Moscow';

  Table1.Post;

* * * *


if MessageDlg('Сохраннить запись?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Table1.Post else Table1.Cancel;


* * * *


procedure TForm1.Button1Click(Sender: TObject);

var i: integer; k: real;

begin

  k:=0;

  with ProgressBar1 do begin

    Min := 0; Max := Table1.RecordCount;

    Table1.First;

    for i := Min to Max do begin

      Position := i; s:=s+ Table1[sum];

      Table1.Next;

    end;

  end;

end;


* * * *

with Table1 do begin

  DisableControls;

  try

    First;

    while not EOF do Delete;

  finally

    EnableControls;

  end;

end;


ЛЕКЦИЯ 4

1. СОЗДАНИЕ ПОЛЕЙ ВЫБОРА И ВЫЧИСЛЯЕМЫХ ПОЛЕЙ

Поля выбора «Lookup» используются для создания виртуальных полей, данные в которых пользователь не набирает вручную, а выбирает из выпадающего списка. После выбора значения из списка оно отображается на экране, а в файл БД записывается код выбранного значения из выпадающего списка в соответствующее поле БД. Выпадающий список формируется из каких либо двух полей другой таблицы. Одно поле другой таблицы хранит код записи, а другое соответствующий текст, который появляется в выпадающем списке. Lookup-поля используются для подключения к основной таблице вспомогательных таблиц-справочников БД. Рассмотрим применение полей выбора на примере.


Например, имеется следующие таблицы:


Таблица 1. Диски CD (Table_CD)

Код дискаНазвание дискаКод фирмы(Name_CD)(Kod_Firm)0000001Итнернет 2001000010000002Суперсистемный диск 2k2000020000003English Platinum (2)000030000004All stars disco 2000040000005Золотая бухгалтерия 200100002

Таблица 2. Фирмы поставщики (Table_Firm)

Код фирмы (Kod_Firm)Название фирмы (Name_Firm)00001Красные Челны00002Технопром00003CD-маркер00004Мегаполис

Данные таблицы имеют общее поле «Код фирмы». Необходимо сделать так, чтобы при просмотре первой таблицы вместо кодов фирм выходило соответствующее название фирмы. Для этого необходимо в первой таблице поле «код фирмы» сделать невидимым для визуальных компонент, и добавить к таблице «Lookup»-поле. Данное поле просмотра будет смотреть код фирмы в первой таблице у каждой записи, находить соответствующую запись с данным кодом во второй таблице, брать из второй таблицы соответствующее коду название фирмы и подставлять его в качестве своего значения. В результате первая таблица будет отображаться следующим образом:


Таблица 1. Диски CD (Table_CD)

Код дискаНазвание дискаФирма (Loolup-поле)(Name_CD)(nFirm)0000001Итнернет 2001Красные Челны0000002Суперсистемный диск 2k2Технопром0000003English Platinum (2)CD-маркер0000004All stars disco 2Мегаполис0000005Золотая бухгалтерия 2001Технопром

Если при просмотре таблицы 1 мы поменяем для первой записи значение фирмы «Красные челны» на «Технопром» (через выпадающий список), то в поле «Код фирмы» таблицы 1 запишется значение «00002», взятое из таблицы 2. Таким образом, поля просмотра позволяют хранить в базе данных только нужные коды, а их текстовые значения брать из другой базы данных и подставлять для просмотра и выбора.

Сергей Талипов

Базы данных на Delphi 7

ЛЕКЦИЯ 1

1. СОЗДАНИЕ ПО НА ОСНОВЕ БАЗ ДАННЫХ В DELPHI

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

Недостаточно просто написать программу, взаимодействующую с БД. Нужно уметь правильно спроектировать эту базу данных. Проектирование баз данных, в общем, является первым шагом разработки приложения. Только когда база данных спроектирована, программист приступает непосредственно к проекту приложения.

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



В «Делфи» понятие «таблица данных» и «база данных» различаются. Таблицей называется совокупность данных, нормализованных в табличную форму. Примером таблиц служат классические БД типа FoxPro и DBase. База данных это файл, содержащий в себе несколько таблиц, которые имеют, как правило, внутренние взаимосвязи по ключевым полям. Базы данных используются в крупных промышленных СУБД типа «ORACLE» и других клиент серверных системах.

Для ознакомления с программированием баз данных будем пользоваться таблицами типа DBase и FoxPro. Для начала любой работы с БД из под «Делфи» необходимо настроить BDE систему. Для этого служит специальная программа «BDE Administrator». Для создания таблиц и наполнения их данными можно воспользоваться программой «DataBase Desktop» из установленного комплекта «Делфи».

2. ПРОСТЕЙШАЯ ПРОГРАММА

Для создания простейшей программы понадобится одна форма, не визуальные компоненты «DataSource» и «Table» из вкладки «Data Access», и визуальные компоненты «DBGrid» и «DBGrid» из вкладки «Data Controls». Расположите компоненты на форме как показано на рис.1.

Рис. 1

Не визуальный компонент «Table» предназначен для непосредственного доступа к таблице данных через BDE систему. Визуальный компонент «DBGrid» служит для просмотра/редактирования записей в таблице данных, компонент «DBNavigator» служит для перемещения (навигации) по таблице данных. Не визуальный компонент «DataSource» служит посредником между компонентом «Table» и всеми визуальными компонентами.

Программная часть программы состоит из двух обработчиков событий «OnActivate» и «OnClose» для формы. Ниже приведен исходный текст данных обработчиков.

procedure TForm1.FormActivate(Sender: TObject);

begin

try { Установка защиты на операторы }

  Table1.DatabaseName:='c:\uoo\dbf'; { Установка пути к таблице данных }

  Table1.TableName:='u2_spec.dbf'; { Указание имени файла таблицы данных с расширением }

  DataSource1.DataSet:=Table1; { Связуем компонент Table1 с компонентом DataSource1 }

  DBGrid1.DataSource:=DataSource1; { Связуем компонент DBGrid1 с компонентом DataSource1 }

  DBNavigator1.DataSource:=DataSource1; { Связуем компонент DBNavigator1 с компонентом DataSource1 }

  if not Table1.active then Table1.Open; { Если таблица еще не открыта, то открыть ее }

except { Если произошла ошибка при открытии таблицы данных, то выдать сообщение }

  showmessage('Error !');

end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin { Если таблица данных открыта, то закрыть ее }

try if Table1.active then Table1.Close; except end;

end;


ЛЕКЦИЯ 2

1. МЕТОДЫ И СВОЙСТВА КОМПОНЕНТ ДОСТУПА К ТАБЛИЦАМ ДАННЫХ

Компонент TTable служит для непосредственной связи с базой данных (таблицей). Данный компонент имеет ряд основных методов:

Open открытие базы данных

Close закрытие базы данных

Refresh (для BDE) / Requery (для ADO) обновление базы данных с диска


Edit перевод БД в режим редактирования текущей записи

Post запоминание изменений для редактируемой текущей записи (вызывается после метода «Edit»)

Cancel отмена изменений для редактируемой текущей записи (вызывается после метода «Edit», если нужно отменить изменения)

Назад