frm
frm – skrót od angielskiego słowa form (formularz) lub nazwa rozszerzenia pliku .frm. Najczęściej spotykane w kontekście MySQL (gdzie pliki .frm opisują strukturę tabel) oraz w środowisku Microsoft Visual Basic (gdzie przechowują definicje graficznych interfejsów użytkownika). Termin pojawia się także w dziedzinie programowania jako ogólne określenie formularzy w aplikacjach.
Historia
Rozszerzenie .frm zostało wprowadzone po raz pierwszy w 1995 roku w wersji MySQL 3.20 jako sposób na przechowywanie metadanych tabel w postaci tekstowej. W 1998 roku firma Microsoft włączyła podobny format do swojego środowiska Visual Basic, gdzie pliki .frm zawierały kod i informacje projektowe interfejsu graficznego.
Zastosowanie w MySQL
- Każda tabela w bazie danych jest reprezentowana przez trzy pliki:
.frm,.MYD(dane) i.MYI(indeksy) w starszych wersjach silnika MyISAM. - Plik
.frmprzechowuje definicję struktury tabeli: nazwy kolumn, typy danych, ograniczenia, klucze główne i indeksy. - W nowszych wersjach InnoDB definicje tabel są przechowywane w wewnętrznych słownikach, ale pliki
.frmpozostają w systemie w celu zachowania kompatybilności. - Pliki te są odczytywane i modyfikowane wyłącznie przez serwer MySQL; ręczna edycja może prowadzić do uszkodzenia bazy.
Zastosowanie w Microsoft Visual Basic
- Plik
.frmw Visual Basic to tekstowy opis formularza graficznego, zawierający zarówno deklaracje kontrolek (przyciski, pola tekstowe, listy) oraz ich właściwości (rozmiar, pozycja, kolory). - Kod obsługujący zdarzenia formularza jest przechowywany w powiązanym pliku
.baslub.cls. - Pliki
.frmmożna otwierać i edytować w edytorze tekstowym, lecz najczęściej korzysta się z wbudowanego kreatora interfejsu w środowisku Visual Basic. - Format ten jest kompatybilny z systemami Windows, a także z niektórymi narzędziami działającymi na Linuxie (np. Wine).
Powiązane formaty plików
W zależności od środowiska, .frm jest częścią szerszych zestawów plików:
.MYDi.MYI– pliki danych i indeksów w MySQL (silnik MyISAM)..vb– pliki kodu źródłowego w Visual Basic powiązane z formularzem..mdbi.accdb– bazy danych Microsoft Access, które mogą bazować na strukturach opisanych w.frm.
Bezpieczeństwo i problemy
Pliki .frm mogą stać się celem ataków, jeśli nie są właściwie chronione:
- W MySQL nieuprawniony dostęp do katalogu
datadirpozwala na odczyt struktury bazy, co może ułatwić dalsze ataki. - W Visual Basic niezaszyfrowane pliki
.frmmogą ujawnić logikę aplikacji i poufne dane konfiguracyjne.
Rekomenduje się stosowanie uprawnień systemowych oraz szyfrowania plików, gdy przechowują one wrażliwe informacje.
Przykładowy fragment pliku .frm (MySQL)
CREATE TABLE `uzytkownicy` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`login` varchar(50) NOT NULL,
`haslo` varchar(255) NOT NULL,
`data_utworzenia` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `login_UNIQUE` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Powyższy fragment ilustruje zawartość pliku .frm po odczytaniu i przetworzeniu przez serwer MySQL.
Przykładowy fragment pliku .frm (Visual Basic)
VERSION 5.00
Begin VB.Form Form1
Caption = "Przykładowy formularz"
ClientHeight = 3150
ClientLeft = 60
ClientTop = 345
ClientWidth = 4740
Begin VB.CommandButton Command1
Caption = "OK"
Height = 315
Left = 2400
Top = 2520
Width = 945
End
End
Wiersze definiują właściwości okna oraz przycisk OK. Taki plik jest interpretowany przez środowisko Visual Basic podczas kompilacji.
Współczesne alternatywy
W dzisiejszych projektach .frm w MySQL jest stopniowo zastępowany przez formaty bazujące na SQL i metadane przechowywane w systemowych tabelach słownikowych (INFORMATION_SCHEMA). W świecie aplikacji webowych popularne stały się frameworki (np. React, Angular), które generują interfejsy w postaci kodu HTML, CSS i JavaScript, zamiast tradycyjnych plików .frm.