Простая база данных на Delphi7
Базы данных нужны в разных областях, и просто необходимы, если нужно накапливать и хранить различную информацию.
В этом уроке я покажу, как сделать простую базу данных.
Простая база данных "Телефонная книжка"
В качестве хранилища данных будем использовать обычную таблицу tab1.dbf с полями name и tel, где будем хранить ФИО человека и его телефон.
Сама табличка tab1.dbf может быть создана разными способами, или может быть табличкой какой нибудь учетной системы, например 1С.
В принципе, аналогичным образом можно использовать любое хранилище, например SQL сервер или базу Microsoft Access.
Таблица tab1.dbf находится в папке с исходниками. В описанном ниже примере эта таблица лежит в корне диска D.
Сначала откройте Администратор источника данных ODBC, и в закладке Пользовательский DNS нажмите кнопку Добавить.
В открывшемся окне выберите Microsoft dBase Driver (.dbf) и нажмите Готово.
В Установках драйвера ODBC для dBase придумайте название источника данных (у нас "dbf").
Затем снимите галочку "Использовать текущий каталог " и выберите место, где лежит наша таблица tab1.dbf, в примере это D:\
После ввода имени источника данных и каталога нажмите ОК, и затем в Администраторе источника данных ODBC нажмите OK, Администраторе источника данных ODBC закроется.
Следующим этапом создаем новый проект.
На форме размещаем два элемента для ввода ФИО и телефона - Edit1 и Edit2, и Label1 и Label2 для обозначения названий этих полей.
Затем размещаем две кнопки - Button1 и Button2.
Затем в свойство Caption элементов вводим названия элементов Label1 - ФИО, Label2-Телефон.
Для кнопок в свойство Caption вносим для Button1-Добавить, в ней будет код для добавления записей в базу, и для Button2-Удалить, в ней будет код для удаления записей.
Затем из закладки Data Access на панели компонентов помещаем на форму компонент DataSource1.
Затем переходим в закладку BDE и оттуда помещаем на форму компонент Table1.
Затем переходим в закладку Data Controls и оттуда помещаем на форму компонент DBGrid1.
Затем мышкой выделите компонент DataSource1 и на панели Object Inspector установите для него свойство DataSet равным значению Table1 (можно выбрать из выпадающего списка).
Затем раскройте плюсиком ветку DataSet на панели Object Inspector и для свойства DatabaseName выберите источник данных dbf, который мы добавили в источники данных ODBC в самом начале урока.
Затем для свойства TableName выберите нашу табличку tab1, которую мы добавили как источник данных "dbf" в самом начале урока.
Для компонента Table1 параметр DatabaseName должен стоять "dbf", а параметр TableName должен быть равен значению "tab1".
Для компонента DBGrid1 параметр DataSource должен стоять "DataSource1", а параметр DataSet должен быть "Table1".
Затем в свойствах компонента DataSource1 сделаем свойство Active равным True, сделав этот источник данных активным.
Теперь вставим код в кнопки.
Сначала дважды щелкнем мышкой по кнопке Добавить и в событие Button1Click вставим следующий код:
procedure TForm1.Button1Click(Sender: TObject); begin with Table1 do begin Insert; FieldByName('name').AsString := trim(Edit1.Text); FieldByName('tel').AsString := trim(Edit2.Text); Post; end; Edit1.Text:=''; Edit2.Text:=''; end;
Это код для добавления строчки в таблицу tab1.
Сначала добавляется строчка со значениями ФИО и Телефона, потом эти два поля ввода делаются снова пустыми, для следующего ввода.
Потом дважды щелкнем мышкой по кнопке Удалить и в событие Button2Click вставим следующий код:
procedure TForm1.Button2Click(Sender: TObject); begin with table1 do begin Delete; end; end;
Для полноты картины добавим еще два компонента, Edit3 и Button3 И сделаем из них поиск по таблице.
Дважды щелкнем мышкой по кнопке "поиск" и в событие Button3Click вставим следующий код:
procedure TForm1.Button3Click(Sender: TObject); begin if trim(Edit3.Text)='' then begin Table1.Filtered:=false; end else begin Table1.Filter:='name='+chr(39)+trim(Edit3.Text)+chr(39); Table1.Filtered:=true; end; end;
Данный код осуществляет поиск по ФИО и отображает в таблице tab1 записи, где поле name совпадает с введенным в Edit3 текстом, а если поле поиска пустое, то фильтр при нажатии на Button3 снимается.
В конце дважды щелкнем мышкой по основной форме и в событие FormCreate вставим следующий код:
procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; end;
Этот код делает все поля ввода (ФИО, телефон и поиск) пустыми при загрузке формы.
Ну и по итогам разместим все элементы формы в удобном виде и введем название основной формы нашей программы- "ТЕЛЕФОННАЯ КНИЖКА".
Запускаем проект на выполнение и получается вот такая простенькая база данных "ТЕЛЕФОННАЯ КНИЖКА".
Сначала вводится ФИО и телефон в поля ввода
Затем нажимаем кнопку Добавить и строчка с ФИО и телефоном добавляется в таблицу.
При вводе в поле поиска искомого ФИО и нажатия кнопки "поиск" в таблице отобразятся строки, где есть искомое ФИО.
Для снятия фильтра очищаем поле поиска и снова нажимаем кнопку "поиск".
Для удаления человека из базы выбираем строчку и нажимаем кнопку Удалить.
Естественно, Вы можете сделать в базе любые другие столбцы в зависимости от потребностей.
Скачать исходники базы данных "ТЕЛЕФОННАЯ КНИЖКА" на Delphi7
Когда я уже сделал этот урок, то наткнулся в интернете на
И там-же для себя нашел очень неплохую бесплатную программку для учета клиентов и заказов, называется