DB concetti fondamentali e connessioni standard

Quando si lavora con i database su Lazarus è bene capire che bisogna passare attraverso un connettore DB, ovvero un oggetto che si prende l'incarico di collegare l'applicazione che state scrivendo con il DBMS (database management system). Nell'esempio che andremo a vedere prenderemo in considerazione SQLite come DBMS. La struttura SQL che useremo per il nostro esempio è la seguente.


CREATE TABLE “main"."utenti" (
    "Id" INTEGER PRIMARY KEY AUTOINCREMENT,
    "Cognome" TEXT,
    "Nome" TEXT,
    "Citta" TEXT
);

Lazarus possiede molti package per poter lavorare con i DB, i due sicuramente più usati, mantenuti e testati sono: i componenti standard rilasciati con Lazarus stesso e ZeosLib.
Questo articolo prende in considerazione i primi, ma vanno spese due parole anche per ZeosLib, che è un ottimo strumento il quale permette un altissimo grado di astrazione del DBMS, cosa estremamente utile per non vincolare l'applicazione al DBMS. L'esempio che andremo a vedere vi permetterà di acquisire i rudimenti per impadronirvi dell'argomento.

Per prima cosa, creiamo una nuova applicazione con:

File → Nuovo... → Applicazione

Ci si presenterà una form vuota sulla quale andiamo a disporre i seguenti oggetti (tra parentesi trovate i nomi delle tab che contengono tale oggetto nell'IDE).

    SQLite3Connection1: TSQLite3Connection;  (Tab SQLDB)
    SQLQuery1: TSQLQuery;  (Tab SQLDB)
    SQLTransaction1: TSQLTransaction;  (Tab SQLDB)
    DataSource1: TdataSource;  (Data Access)
    DBGrid1: TDBGrid;  (Data Controls)
    DBNavigator1: TDBNavigator;  (Data Controls)

TSQLite3Connection è un connettore per db, nel caso specifico per SQLite, avessimo dovuto collegarci con Firebird avremmo usato TIBConnection e via discorrendo. In caso avessimo usato le ZeosLib avremmo astratto questo discorso in quanto il passaggio da un DBMS ad un altro sarebbe stato un parametro del TZConnection ottenendo così l'astrazione che ha reso famoso questo tool. Tali oggetti devono essere parametrizzati con alcuni dati che elencherò qui sotto:

DataBaseName: /home/francesco/Documenti/Lazarus/ArticoliDB/Prima_Applicazione/db.s3db
HostName: 127.0.0.1
Password:
UserName:
Transaction: SQLTransaction1
Connected: True

Ovviamente questi dati vanno bene sul mio pc, in quanto il database file si trova nel percorso da me menzionato, con 127.0.0.1 diciamo che il database si trova sul pc locale, in caso contrario avremmo dovuto mettere l'indirizzo IP del DB server remoto. Il file non possiede dati d'autentificazione, in caso contrario avremmo dovuto inserire il nome utente e la password per accedervi.

TSQLTransaction è un oggetto che permette tra transazione dei dati dal DB all'applicazione che fa riferimento al connettore, infatti lo abbiamo passato per parametro poco sopra. A tutti gli effetti è un oggetto che non esiste nelle ZeosLib visto che è inglobato automaticamente nel TZConnection per semplificare la vita del programmatore. Ora impostiamo il parametro:

Active: True;

TSQLQuery è un oggetto che permette di elaborare i dati del DBMS attraverso il linguaggio SQL, i parametri che vanno valorizzati sono i seguenti

DataBase: SQLite3Connection1
SQL: select * from utenti;   
Active: True;

TdataSource è un oggetto che si occupa di essere il contenitore della sorgente dei dati appena ottenuti attraverso la query SQL sopra realizzata. I parametri da visualizzare sono:

DataSet: SQLQuery1

Ora siamo pronti per parametrizzare gli oggetti con cui andremo ad interfacciarci per modificare i dati presenti nel database relazionale su cui operiamo, nel caso specifico una griglia e un navigatore di record, con la prima vediamo/modifichiamo/inseriamo/cancelliamo i singoli record, con il secondo ci spostiamo di record in record.
Sia per gli oggetti TDBGrid che per i TDBNavigator bisogna impostare il seguente parametro:

DataSource: DataSource1

Fatto questo compilate il vostro progetto e noterete che avrete una griglia che vi permeterà di lavorare con i dati del database da voi scelti.

Qui trovate il link per scaricare l'esempio dell'articolo: www.lazaruspascal.it/esempi/Prima_Applicazione.zip

SMF 2.0.8 | SMF © 2011, Simple Machines
Privacy Policy
SMFAds for Free Forums
TinyPortal © 2005-2012

Go back to article