Una nuova libreria, non legata a CTable, ma presto ne creeò una che collega le due.
La nuova libreria l'ho intitolata CDatabase, e contiene alcune classi per la gestione di database (SQLite, PostgreSQL e MySQL).
Le classi sono derivate da quelle utilizzate in pgDesigner, opportunamente ripulite e rese più dinamiche.
Lo scopo è quello di creare uno strato software, che funga da collegamento tra un database (e le sue funzioni) e l'applicazione. A differenza dagli oggetti che fornisce Gambas, le classi contenute in questa libreria non sono utilizzabili esclusivamente e direttamente con il database, e permettono di gestire le informazioni anche a database chiuso.
Nella lista seguente, l'elenco delle classi:
CDBConnection | Gestione della connessione. Utilizza l'oggetto Connection di Gambas, ma apre ogni volta una connessione per ogni query. |
CDBError | Oggetto Error della libreria. Mantiene le informazioni circa gli errori. |
CDBField | Classe per le informazioni di uno specifico campo di tabella. |
CDBLogin | Classe dati di login. Il passaggio delle informazioni di connessione tra i vari oggetti della libreria viene effettuato tramite questo oggetti. |
CDBRecord | Classe dati di un record. Mantiene e gestisce i dati di un singolo record. |
CDBResult | Classe dati result. Mantiene e gestisce i record. |
CDBDriver | Classe padre di tutte le seguenti sottoclassi. Definisce i metodi per l'interrogazione di un database (liste oggetti, oppure informazioni dettagliate sulla struttura di una tabella, e via dicendo... |
CDBMySQLDriver CDBPostgreSQLDriver CDBSQLiteDriver | Classi base per i driver relativi ai vari database gestiti dalla libreria. |
CDBMySQL<x>Driver | Driver per MySQL versione <x> (per ora solo la 5.0). |
CDBPostgreSQL<x>Driver | Driver per PostgreSQL versione <x> (dalla 7.0 fino alla 9.0). |
CDBSQLite<x>Driver | Driver per SQLite versione <x> (dalla 2.x fino alla 3.x). E' da tener presente che l'uso di queste librerie dipende dalla presenza del relativo motore nel sistema. |
Nel file compresso ho inserito anche qualche esempio (grafico e non), con cui fare delle prove.
Notare che, come per CTable, la libreria è stata creata su Gambas3, ma molto probabilmente funziona anche su Gambas2, dato che non ho usato funzionalità specifiche della nuova versione.
Fatemi sapere le vostre impressioni.
Bye da MDczfv...