Lazarus 2.2 vývojové prostředí

Tento článek je aktualizovaný návod na vývojové prostředí LAZARUS 2.2.0 nad databázemi MariaDB a SQLite3. Navazuje na starší článek k LAZARUS 1.6.4.

Popisovaná verze:
LAZARUS IDE 2.2.0 na linux Mint 21
Server version: 10.6.7-MariaDB
SQLite version 3.37.2
Free Pascal Compiler version 3.2.2

Před instalací vývojového prostředí LAZARUS je dobré již mít zprovozněn server MaridDB (balíček MariaDB-server, popřípadě phpMyAdmin pro vytváření tabulek v MariaDB) a SQLite3 rozhraní-příkazový řadek (popřípadě sqlitebrowser pro vytváření tabulek v SQLite3).

Instalace na linuxu probíhá standardně výběrem balíčku ze správce balíčků, například Synaptic. Povolíme všechny závislosti o které si to řekne a nainstalujeme. Při prvním spuštění se objeví červený vykřičník "!fppkg". Zde stačí kliknout na tlačítko "Restore fppkg configuration" a pak spustit IDE Lazarus.

Lazarus 2.2.0 první spuštění

Tímto je instalace vývojového prostředí LAZARUS úspěšně dokončená.
Nyní si můžeme v phpmyadmin vytvořit uživatele, kterému přiřadíme stejné jméno databáze.
V internetovém prohlížeči FIREFOX (nebo jiném) zadáme URL: https://localhost/phpmyadmin/

mysqladmin

Zobrazí se přihlašovací dialogové okno pro zadání jména a hesla. Proč superuživatel super je jasné z mysql_secure_installation (mariadb-secure-installation). Po zadání přihlašovacích údajů klikneme na menu "uživatelské účty", zvolíme např. studenti a zatrhneme "Vytvořit databázi se stejným názvem a přidělit všechna oprávnění". Po kliknutí na tlačítko "proved" bude vytvořen uživatelský účet "studenti" a databáze "studenti".
Pro české řazení (častá chyba na serverech) je ještě třeba nastavit prrovnávání databáze "studenti" na utf8mb4_czech_ci. Pak se ze superuživatelského účtu SUPER můžeme odhlásit a poté se přihlásit do účtu "studenti" (který má všechna oprávnění k databázi "studenti" a žádná globální oprávnění.

 

 

 

Vytvoříme si tabulku třidy:

+--------------+------------------+------+-----+---------+----------------+
| Field        | Type             | Null | Key | Default | Extra          |
+--------------+------------------+------+-----+---------+----------------+
| trida_id     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| nazev_tridy  | varchar(10)      | NO   |     | NULL    |                |
| tridni_prijm | varchar(15)      | NO   |     | NULL    |                |
| tridni_jmeno | varchar(15)      | NO   |     | NULL    |                |
| predseda     | varchar(25)      | NO   |     | NULL    |                |
+--------------+------------------+------+-----+---------+----------------+

Nakrmíme ji daty:

+----------+-------------+--------------+--------------+-------------------+
| trida_id | nazev_tridy | tridni_prijm | tridni_jmeno | predseda          |
+----------+-------------+--------------+--------------+-------------------+
|        1 | T1.A        | Mikulka      | Jan          | Horehleď Blažej   |
|        2 | T1.B        | Genrtová     | Eva          | Kinter Ivan       |
+----------+-------------+--------------+--------------+-------------------+

Pak tabulku studenti:

+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| student_id  | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| trida_id    | int(10) unsigned | NO   | MUL | NULL    |                |
| prijmeni    | varchar(15)      | NO   |     | NULL    |                |
| jmeno       | varchar(15)      | NO   |     | NULL    |                |
| dat_nar     | date             | NO   |     | NULL    |                |
| znam_prumer | double           | NO   |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+

Nakrmíme ji daty:

+------------+----------+------------+------------+------------+-------------+
| student_id | trida_id | prijmeni   | jmeno      | dat_nar    | znam_prumer |
+------------+----------+------------+------------+------------+-------------+
|          1 |        1 | Žušková    | Drahomíra  | 2012-10-03 |        2.15 |
|          2 |        1 | Šušpera    | Petr       | 2008-10-27 |        1.45 |
|          3 |        1 | Adamíra    | Vojtěch    | 2007-09-13 |         1.6 |
|          4 |        1 | Horehleď   | Blažej     | 2007-02-27 |        2.14 |
|          5 |        2 | Kinter     | Ivan       | 2007-04-11 |        1.89 |
|          6 |        2 | Batoš      | Jan        | 2007-05-15 |        2.23 |
|          7 |        2 | Kučera     | František  | 2007-09-03 |        1.47 |
+------------+----------+------------+------------+------------+-------------+

A můžeme si zadat nějaký hezký SQL dotaz:
select prijmeni,jmeno,znam_prumer from tridy natural join studenti where trida_id=2 order by prijmeni;

Výsledek:

+----------+------------+-------------+
| prijmeni | jmeno      | znam_prumer |
+----------+------------+-------------+
| Batoš    | Jan        |        2.23 |
| Kinter   | Ivan       |        1.89 |
| Kučera   | František  |        1.47 |
+----------+------------+-------------+

Tento výsledek budeme očekávat i v programu v LAZARUSu.

MariaDB v LAZARUSu

Na formulář umístíme komponenty TMySQL80Connection, TSQLQuery, TSQLTransaction, TDataSource, TDBGrid.
Pak doplníme události formuláře Create a Activate, viz výpis:

 

 

 

 

 

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, mysql80conn, SQLDB, DB, Forms, Controls, Graphics, Dialogs,
ComCtrls, DBGrids;

type

{ TForm1 }

TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
MySQL80Connection1: TMySQL80Connection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
StatusBar1: TStatusBar;
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
private

public

end;

var
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
// MySQL80Connection1.CharSet:='utf8'; // nastavení znakové sady
// přihlašovací údaje
MySQL80Connection1.DatabaseName := 'studenti';
MySQL80Connection1.HostName := 'localhost';
MySQL80Connection1.UserName := 'studenti';
MySQL80Connection1.Password := 'lopata77777';

//propojim komponnetu transakce s komponentou pripojeni
MySQL80Connection1.Transaction := SQLTransaction1;

//propojim komponenty dotazu (query) s pripojenim
SQLQuery1.DataBase := MySQL80Connection1;

//propojim komponentu datasource s dotazem
DataSource1.dataset := SQLQuery1;

//propojim DBgrid s datasource
DBGrid1.DataSource := DataSource1;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
try
if SQLQuery1.Active then
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('select prijmeni,jmeno,round(znam_prumer,2) as prumer from tridy natural join studenti where trida_id=2 order by prijmeni');
SQLQuery1.Open;
except
On E :Exception do begin
MessageDlg('Chyba', E.Message, mtError,[mbYes],0);
end;
end;
end;

end.

A takto to vypadá v LAZARUSu:

studenti


Komentáře

SSL pro weby od 11/2015 zdarma


MS WINDOWS 10 - sběr informací o uživateli


DEBIAN 11 - OS zdarma debian vyšel 14.8.2021

debian 9

debian - stáhnout nejnocější DEBIAN pro PC
debian edu - debian pro školy a školní prostředí


Zranitelnost „ROM-0“ routerů


Předali data tajným službám
Americké bezpečnostní agentuře (NSA) předali data Microsoft, Yahoo, Google, Facebook...


Itálie preferuje open source
Italský parlament schválil zákon, který nařizuje státním institucím pořizovat otevřený software před komerčním. To znamená LINUX místo MS-WINDOWS, LIBRE OFFICE místo MS OFFICE atd.

29.08. 2021 17:54:07
  • Redakční systém MRS
  • 10 nečastějších zranitelností WEBU
  • Esperantoesperanto - univerzální mezinárodní jazyk
  • Kryptografie okolo nás - kniha popisuje využití kryptografie v běžném životě
  • SMS zdarma - posílání SMS zdarma
  • proč LINUX
  • základy LINUXU
  • Software na úřadech - jeho otevřené alternativy
  • Řekněte sbohem Microsoftu
  • Rychlost připojení - změřte si svoji rychlost
  • SEO servis
  • Jak psát web
  • Zákony - občanský, autorský, obchodní zákoník atd.
  • Infosoud - nalezení stání a průběhu jednání
  • ARES - registr ekonomických subjektů
  • Katastr nemovitostí
  • Broďan - brodské nezávislé zpravodajství

vydělávejte
na burze kryptoměn

28.08. 2021 10:31:09
Návštěvy
Celkem: 245447
Týden: 551
Dnes: 61
  přihlásit poslední změna: 28.10. 2022 14:44:11