Tabella dei contenuti

Argomento precedente

PowerPoint: graph

Argomento successivo

Parametri di configurazione

Questa pagina

Database: db

L’oggetto db permette di interrogare il database Access e recuperare i dati.

db.name

Definisce il nome del database Access. Estensione predefinita: mdb.

db.table

Definisce il nome della tabella [1] che contiene i dati.

Interrogazione di tabelle generiche

db.sql

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]}"

Interrogazione di tabelle “a matrice”

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:

_images/matrix.png

corrispondono a questa tavola (in rosso le coordinate della matrice):

_images/matrix_flag_excel.png

db.matrix

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.

db.stratum

Imposta il valore del campo stratum. Rimane impostato per tutte le query successive fino ad una nuova istruzione db.stratum.

db.find e db.finds

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.

.exp

Specifica un frammento di istruzione WHERE SQL.

.mtr

Specifica i valori per il campo matrix. Sovrascrive per la sola query corrente un eventuale valore impostato dal comando db.matrix.

.str

Specifica i valori per il campo stratum. Sovrascrive per la sola query corrente un eventuale valore impostato dal comando db.stratum.

.tab

Specifica i valori per i campi table e subtable. Si può indicare anche un solo argomento.

.row

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]).

.stat

Specifica il valore del campo stat.

  • .stat(:count) può essere abbreviato in .scount.
  • .stat(:summary) può essere abbreviato in .ssum.

.wn

Restituisce anche i net.

.wt

Restituisce anche il totale di riga.

.n

Limita la query ai soli net.

.col

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.

.all

Restituisce tutti i campi del record.

.nome_campo

Restituisce solo il campo indicato.

.labs

Restituisce le etichette di riga.

.slabs

Restituisce le etichette di riga per le statistiche summary.

Esempi

 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

Sequel

Sequel è il Database Toolkit for Ruby utilizzato per interrogare il database. Alcuni metodi permettono l’accesso diretto ad alcune funzionalità e oggetti di Sequel.

db.conn

Restituisce la connessione al database.

db.model

Restituisce il dataset della tabella.

db.filter

Da accesso al metodo filter del dataset.

Note

[1]E’ necessario specificare il nome della tabella se si sta usando un report a matrice di dati creato dal programma pTabs.