: TEdit ;: TEdit ;: TEdit ;: TButton ;: TButton ;: TLabel ;: TLabel ;: TLabel ;: TLabel ;: TButton ;: TIBQuery ;: TIBTransaction ;: TButton ;: TButton ;: TButton ;: TRadioGroup ;: TEdit ;: TButton; FormCreate (Sender: TObject); ButtonExitClick (Sender: TObject); FormClose (Sender: TObject; var Action: TCloseAction ); Button1Click (Sender: TObject); ButtonOKClick (Sender: TObject); ButtonEditClick (Sender: TObject); Button2Click (Sender: TObject); Grid (); ButtonDelClick (Sender: TObject); RadioGroup1Click (Sender: TObject); Button3Click ( Sender: TObject);
{Private declarations}
{Public declarations}
end ;: TForm1 ;: string;// Змінна для зберігання імені таблиці БД
insert: boolean;
{$ R * .dfm} TForm1.Grid ();// Міняємо назви у стовпців на російські
Begin.Columns [0] .Visible:=false;// Приховуємо стовпець Номер.Columns [1] .Title.Caption:= Назва ; .Columns [2] .Title.Caption:= Параметри функції ; .Columns [3] .Title.Caption:= Мова ; .Columns [4] .Title.Caption:= Опис ;; TForm1.FormCreate (Sender: TObject);// При створенні форми підключаємося до БД
var: Tinifile;
//спілкуємося до іні-фалйлу config.ini, який зберігається в каталозі з програмою
//це потрібно, щоб можна було підключити іншу базу, прописавши до неї шлях у config.ini
try:=TIniFile.Create (ExtractFilePath (Application.ExeName) + config.ini );
//і зчитуємо звідти (з секції Base параметр Path) шлях до БД в IBDatabase1
IBDatabase1.DatabaseName:=IniFile.ReadString ( Base raquo ;, Path raquo ;, ) ;. Connected:=true;// приєднуємо БД
//зчитуємо ім'я таблиці з іні файлу:=IniFile.ReadString ( Base raquo ;, Name raquo ;, );
//завантажуємо дані з БДIBQuery1 do
begin.Text:= select * from + Tabl ;;;. Visible:=false;
grid ();// Міняємо назви у стовпців на російські
insert:=false; .Free;// звільняємо пам'ять//Якщо сталася ошібкаE: Exception do//виводимо про це сообщеніе.MessageBox (PChar (E.Message), Помилка raquo ;, MB_ICONERROR);
Halt;// закриваємо програму в разі помилки
end ;;; TForm1.ButtonExitClick (Sender: TObject);// Вихід з програми
begin ;;
//При закритті форми закриваємо БД (відключаємо з нею зв'язок)
procedure TForm1.FormClose (Sender: TObject; var Action: TCloseAction) ;. Close; .Connected:=false ;; TForm1.Button1Click (Sender: TObject) ;. Visible:=true;:= true;
end;
//При натисканні на кнопку готове, на панелі вставки/редагування запису
procedure TForm1.ButtonOKClick (Sender: TObject); Edit1.Text= then
Begin ( Введіть найменування функції );
exit ;; Edit2.Text= then ( Введіть параметри функції ) ;;; Edit3.Text= then ( Введіть мову ) ;;; Edit4.Text= then
Begin ( Введіть опис функції );
exit ;; insert then//якщо вставляємо запис ... IBQuery2 do//QuotedStr - Ставить кавичкі.Text:= insert into + tabl + (NAME, PARAMETR, LANG, DESCRIPTION) values ??(
+ QuotedStr (Edit1.Text) + , + QuotedStr (Edit2.Text) +
laquo;,raquo;+QuotedStr(Edit3.Text)+laquo;,raquo;+QuotedStr(Edit4.Text)+laquo;);raquo;;.StartTransaction;;// виконуємо запит ExecSQL, для всіх типів крім select.Commit;// підтверджуємо транзакцію.Active:=false ;;. Close;// оновлюємо Query.Open; ();//якщо відбулася ошібкаIBQuery2.Active then.Transaction.Rollback;// відкатуємо транзакцію;
end//Якщо запис редагуємо
Begin
tryIBQuery2 do//QuotedStr - Ставить кавичкі.Text:= update + tabl + set NAME= + QuotedStr (Edit1.Text) + laquo ;, PARAMETR= + (Edit2.Text) + laquo ;, LANG= + QuotedStr (Edit3.Text) +
laquo ;, DESCRIPTION= + QuotedStr (Edit4.Text) + where ID= + IBQuery1.FieldByName ( ID ). AsString; .StartTransaction ;;// виконуємо запит ExecSQL, для всіх типів крім select.Commit;// подтврждаем транзакцію.Active:=false ;;. Close;// оновлюємо Query.Open; ();//якщо відбулася ошібкаIBQuery2.Active then.Transaction.Rollback;// відкатуємо транзакцію ;;. Visible:=false ;; TForm1.ButtonEditClick (Sender: TObject);
begin:=false;// вказуємо що ми редагуємо, а не вставляємо запис
Edit1.Text:=IBQuery1.FieldByName ( Name ). AsString; .Text:=IBQuery1.FieldByName ( PARAMETR ). AsString; .Text:=IBQuery1.FieldByName ( laquo ; LANG ). AsString; ...