file-bd-delphiВсем привет дорогие друзья! Продолжаем нашу тему, в которой мы рассматриваем работу с файловыми базами данных в Delphi. Мы продвигаемся постепенно, в первой статье рассмотрели общую структуру, во второй статье мы рассмотрели, как можно сохранять и открывать наш набор данных (только он у нас был пустой).

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

Для начала не забудьте прочитать предыдущие статьи (это для тех, кто пропустил данную тему раньше, а только присоединился сейчас):

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

Ну что, давайте создадим проект в Delphi, разместим на форме следующие компоненты:

  • TClientDataSet
  • TDBGrid
  • TButton
  • TDataSource
  • TOpenDialog
  • TSaveDialog

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

clientdataset-delphi

 

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

Начнем мы с добавления записи. Когда мы работали с ADO, то мы использовали процедуру Insert. Тут тоже самое, для добавления нам необходимо использовать данную процедуру, затем задать значения нашим полям и сохранить набор данных. В общем, добавление записи будет выглядеть следующим образом:

procedure TForm1.Button3Click(Sender: TObject);
begin
  ClientDataSet1.Insert;
  ClientDataSet1.Fields.Fields[1].AsVariant:='test';
  ClientDataSet1.Fields.Fields[2].AsVariant:='test';
  ClientDataSet1.Post;
  ClientDataSet1.SaveToFile('test.xml',dfXML);
end;

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

Для редактирования данных, мы будем использовать процедуру Edit, а код будет следующим:

procedure TForm1.Button4Click(Sender: TObject);
begin
  ClientDataSet1.Edit;
  ClientDataSet1.Fields.Fields[1].AsVariant:='test2';
  ClientDataSet1.Fields.Fields[2].AsVariant:='test2';
  ClientDataSet1.Post;
  ClientDataSet1.SaveToFile('test.xml',dfXML);
end;

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

ClientDataSet1.Fields.FieldByName('Phone').AsVariant:='test2';

С удалением все тоже самое, используем процедуру Delete. Это будет выглядеть следующим образом:

procedure TForm1.Button5Click(Sender: TObject);
begin
   ClientDataSet1.Delete;
   ClientDataSet1.SaveToFile('test.xml',dfXML);
end;

Для поиска можно использовать фильтры, либо же использовать функцию Locate:

procedure TForm1.Button6Click(Sender: TObject);
begin
   ClientDataSet1.Locate('Phone','test2',[loCaseInsensitive]);
end;

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

  • Last
  • Prior
  • Next
  • First

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

Метки: , , , ,




К записи “Работа с файловыми базами данных в Delphi. Часть 3” оставлено комментариев: 3.

  1. Михаил:

    Я обнаружил странное поведение Delphi 7 при трассировке. Было бы интересно услышать мнение профессионала. Записал видео, качество, правда, не очень.
    http://www.youtube.com/watch?v=WlbwnQ9_Bd4

  2. stepan:

    Вот еще интересная статья на эту тему

  3. samsim:

    Уже это пробовал и мне очень помогло. Так, то нужно устанавливать сервер баз даных и допольнительные алиасы, а тут все простенько и без особых заморочек.

Оставить комментарий

Вы можете использовать следующие теги:

*