Главная » Delphi, Исходники, Разное » Справочник по животным в Delphi. Базы данных
Фев
14

Справочник по животным в Delphi. Базы данных

Задание:
Создать проект, с помощью которого пользователь смог бы выполнять программную модификацию таблицы БД «Животные». Используются компоненты DBGrid и DBNavigator. С помощью программ SQL Explorer и DatabaseDesktop создается база данных «Животные».
Анализ проекта:
Чтобы набор данных можно было менять, необходимо, чтобы для него была установлена возможность модификации. Для компонента Table возможность модификации задастся присвоением свойства ReadOnly значение False (по умолчанию). Если это свойство имеет значение True, то любые изменения (как визуальные, так и программные) будут запрещены. Для организации программной базы данных используется компонентами Table (вкладка BDE палитры компонентов), поскольку именно он обеспечивает непосредственную связь с физическим таблице БД, которая расположена на диске.
Приведем свойства и методы этого компонента, которые используем для программной модификации БД «Животные»:




  • свойство RecNo — определяет номер текущей записи;
  • метод Locate — обеспечивает поиск записи, содержащий заданные поля и удовлетворяет условиям поиска;
  • метод InsertRecord — вставляет новую запись в текущей позиции курсора и одновременно задает значения всех или некоторых полей;
  • метод Edit — служит для перевода набора данных в режим редактирования;
  • метод Post — записывает изменения, которые пользователь внес при редактировании;
  • метод SetFields — используется для изменения значений всех или некоторых полей текущей записи;
  • метод Delete — удаляет текущую запись.

Вид программы:

Справочник по животным в Delphi. Базы данных

Справочник по животным в Delphi. Базы данных



Исходник программы:
[sourcecode language=»delphi»]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, Grids, DBGrids, DBTables;
type
TForm1 = class(TForm)
Table1: TTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure proverka;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
flag:boolean;
dlina, massa: real;
implementation
{$R *.dfm}
procedure tform1.proverka; {процедура проверки корректности данных при вводе}
begin
flag:=false;
if form1.labeledEdit1.Text<>’ ‘ then begin
try
dlina:=StrToFloat(form1.labelededit2.text);
massa:=StrToFloat(form1.labelededit3.text);
except
MessageDlg(‘Помилка при введенні довжини або ваги тіла!’,mtError,[mbOK], 0) ;
exit;
end;
flag:=true;
end;
else
MessageDlg ( ‘Назву тварини не вказано!’ , mtError,[mbOK],0); end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
proverka;
if flag then begin
if not Table1.Locate(‘Nazva tvarini’, labeledEdit1.Text, [loCaseinsensitive])
then begin
Table1.InsertRecord([labeledEdit1.Text,dlina,massa]);
labeledEdit1.Text:= ‘ ‘ ;
labelededit2.Text:= ‘ ‘ ;
labelededit3.Text:= ‘ ‘
end;
else
MessageDlg(‘Така тварина вже є в БД!’,mtInformation,[mbOK], 0) ; end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var
num_rec:integer;
begin
proverka; if flag then begin
num_rec:=Table1.RecNo;
if not Table1.Locate(‘Nazva tvarini’, labeledEdit1.Text, [loCaseinsensitive])
then begin Table1.Edit;
table1.SetFields([labeledEdit1.text,dlina,massa]);
end;
else begin
if num_rec=Table1.RecNo then begin
Table1.Edit;
Table1.SetFields([labeledEdit1.text,dlina,massa]);
Table1.Post;
labelededit1.Text:= »;labelededit2.Text:= ‘ ‘;labelededit3.Text:= ‘ ‘
end;
else
MessageDlg( ‘Така тварина вже є в БД! ‘ , mtInformation, [mbOK],0);
end;
end;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if MessageDlg(‘Вилучити поточний запис?’,
mtConfirmation,[mbYes,mbNo],0)=mrYes
then Table1.Delete ;;
end;
procedure TForm1.LabeledEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in [#8,’а’..’я’,’a’..’z’,’A’..’Z’,’А’..’Я’,’ ‘]) then
begin
key:=#0;
MessageDlg(‘Данні не вiрнi’,mterror,[mbok],0);
end;
end;
end.
[/sourcecode]
Скачать исходник программы:
[download id=»28″]



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.