L’oggetto db permette di interrogare il database Access e recuperare i dati.
Definisce il nome del database Access. Estensione predefinita: mdb.
Eseque la query SQL specificata sul database. Restituisce un array contenete i record trovati. Ogni record è un hash dove i nomi dei campi costituiscono le chiavi.
1 2 | banca = db.sql("SELECT * FROM campione WHERE cod_filiale=2109").first
filiale = db.sql "SELECT * FROM db_filiali WHERE id = #{banca[:id]}"
|
Le tabelle a matrice di dati in formato Access generate da pTabs contengono i dati delle tabelle statistiche in un formato definito da campi fissi indipendentemente dai pannelli o dal tipo di tavole prodotte.
Per esempio questi record della tabella Access:
corrispondono a questa tavola (in rosso le coordinate della matrice):
Imposta il valore del campo matrix. Rimane impostato per tutte le query successive fino ad una nuova istruzione db.matrix. E’ utile quando la tabella contiene dati con valori diversi di matrix.
Imposta il valore del campo stratum. Rimane impostato per tutte le query successive fino ad una nuova istruzione db.stratum.
Trovano rispettivamente un record e più record. finds permette di specificare il numero di record attesi. Per find il numero di record attesi è 1. Se il numero di record non è quello atteso, viene generato un errore.
L’interrogazione viene definita concatenando una serie di metodi che specificano i valori da ricercare nei campi e termina con il nome della variabile della tabella da restituire o con all per restituire i record completi di tutti i campi.
Di default i dati sono limitati agli item della variabile di riga con esclusione dei net e del totale di riga.
Specifica un frammento di istruzione WHERE SQL.
Specifica i valori per il campo matrix. Sovrascrive per la sola query corrente un eventuale valore impostato dal comando db.matrix.
Specifica i valori per il campo stratum. Sovrascrive per la sola query corrente un eventuale valore impostato dal comando db.stratum.
Specifica i valori per i campi table e subtable. Si può indicare anche un solo argomento.
Specifica i valori per i campi rvar e rid. Si può indicare anche un solo argomento.
Come valore di rid si può specificare un numero, un range (1..5) o un array ([2,6]).
Specifica il valore del campo stat.
Restituisce anche i net.
Restituisce anche il totale di riga.
Limita la query ai soli net.
Specifica i valori per i campi cvar e cid. Si può indicare anche un solo argomento.
Come valore di cid si può specificare un numero, un range (1..5) o un array ([2,6]).
Se non specificato, la query restiduisce i dati relativi ai totali di colonna.
Restituisce tutti i campi del record.
Restituisce solo il campo indicato.
Restituisce le etichette di riga.
Restituisce le etichette di riga per le statistiche summary.
1 2 3 4 5 6 7 8 9 10 | db.find.tab(:d5n).row(1).ctot.cpct # restituisce la percentuale di colonna a totale per l'item 1 della tabella 'd5n'
db.finds.tab(:d5n).ctot.cpct # restituisce le percentuali di colonna a totale di tutti gli item della tabella 'd5n'
db.finds(4).tab(:d5n).ctot.cpct # ... controlla inoltre che gli item restituiti siano 4, altrimenti genera un errore
db.find.tab(:d1).row(0).ctot.all # restituisce tutti i campi del record
db.finds.tab(:d1).row([2,4]).ctot.rlabel # etichette dei codici di riga 2 e 4
db.finds(5).tab(:d1).row(1..5).labels # etichette dei codici di riga da 1 5
db.finds(5).tab(:d1).exp("rid>0").labels # etichette dei codici di riga maggiori di 0
# un istruzione "eccessivamente" completa
db.find.data("AB745","ALL").tab(:d5n,1).row(:d5,0).col('.tot',1).stat(:count).count
|