Większość piszących oprogramowanie, przechowuje dane tymczasowe w różnych strukturach. Mogą to być skalar, tablica, hasz, plik. Struktury te pozwalają danym zapisać, odczytać, podmienić, usunąć, nadać status trwałości. W ekosystemie Perla, istnieje wiele mechanizmów które Nam ułatwiają to zadanie. Jedne są bardziej, inne mniej przystępne. Szczególnie jeśli dotyczy to początkujących adeptów Perla. Dziś chcemy zaproponować trochę inne podejście do tematu. A mianowicie wykorzystanie aparatu bazodanowego do tymczasowego przechowywania danych.
Chcielibyśmy Cytat: (1) Dowolną ilość danych zapisać, zmienić, usunąć, odczytać, podmienić (2) Nie chcemy utrwalać danych (3) Chcemy nimi w łatwy sposób manipulować
Co potrzebujemy Cytat:
Poniższy program przybliży Nam to zagadnienie
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect("dbi:SQLite:dbname=:memory:", "", "", { RaiseError => 1 });
$dbh->do("CREATE TABLE pracownik (numer, nazwisko, imie, data)");
$dbh->do("INSERT INTO pracownik VALUES (1,'Marchewka','Janina','24-12-2009')");
$dbh->do("INSERT INTO pracownik VALUES (2,'Pietruszka','Magda','07-10-1987')");
$dbh->do("INSERT INTO pracownik VALUES (3,'Puchatek','Tomasz','02-01-1075')");
$dbh->do("INSERT INTO pracownik VALUES (4,'Kowalski','Jan','15-08-1966')");
$dbh->do("INSERT INTO pracownik VALUES (5,'Zebra','Piotr','11-03-1983')");
my $sth = $dbh->prepare("SELECT * FROM Pracownik");
$sth->execute;
while(my $wiersz = $sth->fetch) {
print join(", ", @$wiersz), "\n";
}
$sth->finish;
$dbh->disconnect;
Patrząc na zapis tego kodu, możemy wyszczególnić kilka elementów Cytat: (1) Brak trwałości zapisu :memory: (2) Dane przechowujemy w bazie danych (3) Różnorodność typów danych (4) Dostępne, bazodanowe mechanizmy manipulacji
Dlaczego proponujemy taki wybór. Cytat: (1) Jest prosty i przejrzysty (2) Łatwy w pielęgnacji (3) Dobrze podatny na zmiany i łatwy w rozbudowie (4) Dostępny mechanizm bazodanowy do manipulacji danymi (5) Łatwa integracja z innymi bazami danych
Zachęcamy Wszystkich do skorzystania z proponowanego rozwiązania, szczególnie w tych obszarach, gdzie prostota kodu, jego funkcjonalność powinny odgrywać decydującą rolę.
|