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.
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:
Komentáře
Kdokoliv může přidávat komentáře ke článkům bez registrace. Zadá si libovolnou přezdívku a napíše komentář.
SSL pro weby od 11/2015 zdarma
MS WINDOWS 10, 11 - sběr informací o uživateli
DEBIAN 12 (bookworm) - OS zdarma debian vyšel 10.6.2023
debian - stáhnout nejnovější DEBIAN pro PC
debian edu - debian pro školy a školní prostředí, stažení DEBedu (torrent)
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.