File di dati

pTabs2 può gestire dati in formato SPSS, PSPP, XPORT (SAS), CSV, Xlsx, Nipo Odin, Triple-S, Testo, SQLite e ODBC.

Metodi

Alcuni metodi (funzioni) sono comuni a più fonti di dati. Lo stesso metodo può accettare parametri differenti in relazione alla specifica fonte di dati.

Fonte dati Driver Estensione open get save labels translations edit copy convert exec
SPSS spss sav X X X X          
PSPP spss sav X X X X          
SAS xport xpt X X              
Excel 2007-2010 xlsx xlsx X X X X X X X X  
CSV csv csv X X X X X        
Nipo Odin/Diana odin dat / var X X              
Triple-S sss asc / xml X X X            
Testo fwf dat X X X            
ODBC odbc   X X X X         X
SQLite sqlite db X X X X         X

config

Permette di preimpostare alcuni parametri del driver in modo da non doverli specificare nelle successive istruzioni.

1
2
3
4
odbc.config :db => "dbname", :uid => "user", :pwd => "password"

odbc.open :table => "table1"
odbc.save :table => "table2"

open

Carica una fonte di dati in un dataset e lo rende disponibile a pTabs2.

Non è necessario specificare le estensioni dei file se si utilizzano quelle standard.

Argomenti:

  • filename: il nome del file da caricare
  • :keep => [varlist]: l’elenco di variabili da includere
  • :drop => [varlist]: l’elenco di variabili da escludere
  • :n => # specifica il numero di righe da leggere (default: tutti i record)
  • :labels => name il nome del file/foglio/tabella contenente le etichette e altri metadati
  • :start => # specifica il numero di riga da cui incominciare a leggere i dati (default: 1)
  • :skipstring => true|min_string_size: esclude le variabili stringa (true) o le variabili stringa a partire da una certa dimensione (min_string_size) [spss, csv, xlsx]
  • :rowlabel => # specifica il numero di riga che contiene le etichette delle variabili [csv, xlsx]
  • :missing => :ignore: non considera la definizione dei valori mancanti [spss]
  • :hi => #: il valore da sostituire a HI nei missing values [spss]
  • :lo => #: il valore da sostituire a LO nei missing values [spss]
  • :ws => :sym: il nome (simbolo) del workspace in cui caricare i dati
  • :bk => true|false: false (default) attiva il workspace in cui vengono caricati i dati; true non attiva il workspace
  • :lazy => true: caricarica le variabili solo quando vengono effettivamente richieste dallo script [spss]
  • &block: alcuni driver [spss, xlsx] accettano un blocco in cui eseguire istruzioni relative al dataset

get

Legge un file di dati e lo trasforma in un oggetto accessibile in modo simile a un foglio elettronico. I dati devono avere una struttura a matrice. I dati non sostituiscono il dataset attivo e non sono disponibili per l’elaborazione e la tabulazione.

Utilizza gli stessi argomenti di open.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 data = spss.get "coding"

 p data.fields
 p data.matrix
 p data.row(1)
 p data.record(1)
 p data.column(1)
 p data.column("A")
 p data.column("varname")
 p data.column(:varname)
 p data["A5"]
 p data[5,1]
 p data.to_h

save

Salva i dati del dataset attivo. Se è attivo un fitro verranno salvati solo i dati filtrati.

Argomenti:

  • il nome del file in cui salvare i dati
  • :keep => [varlist]: l’elenco di variabili da includere
  • :drop => [varlist]: l’elenco di variabili da escludere
  • &block: un blocco in cui eseguire istruzioni relative al dataset che verrà salvato. La presenza di un blocco potrebbe rallentare le operatrazioni su file di grandi dimensioni in quanto comporta la copia in memoria di tutto il dataset

label

Carica le etichette delle variabili e altri metadati e le applica al dataset attivo.

Argomenti:

  • il nome del file da caricare

translations

Carica un dizionario di traduzioni. Vedi Internazionalizzazione.

Argomenti:

  • il nome del file da caricare

edit

Apre un file e permette di modificarne il contenuto. Attualmente è disponibile soltanto per i file xslx.

Vedi Aggiornamento file Xlsx

Altri metodi specifici di alcuni formati sono specificati nella sezione relativa alla fonte di dati.

<<

SPSS System File

spss gestisce dati in formato SPSS.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
 spss.open "nome_file"

 spss.open "nome_file2", :ws => :tojoin do
   rename [:d1, :d2, :d3] => [:v1, :v2, :v3]
   delete :d100
 end

 spss.save "nome_file", :keep => [:sesso, :eta, :area, :ipf, :espcam, :espuni]

 spss.save "nome_file" do
   rename rename :area => :mcr
   select "sex=1"
   sort :serial
 end

spss.labels

Il metodo labels di spss utilizza un normale file di dati .sav da cui copia le informazioni delle variabili nelle corrispondenti variabili del file attivo.

Suggerimento

ViewSav, a viewer for SPSS data files è un programma free particolarmente utile per visualizzare velocemente il contenuto dei file di dati SPSS.

Suggerimento

PSPP è un programma free che permette di generare e gestire file di dati SPSS.

<<

GNU PSPP

PSPP (GNU PSPP) è un clone open-source di SPSS. Sebbene non supporti tutte le caratteristiche di SPSS, ha la stessa sintassi di base e scrive i dati nello stesso formato, pertanto valgono tutte le osservazioni e le istruzioni fornite per SPSS.

<<

SAS Transport File

xport legge dati SAS esportati in formato Transport File (XPORT). Il file XPORT deve contenere un solo dataset oppure un dataset con i dati seguito da un dataset con i formati e etichette che verranno applicate alle variabili.

I nomi delle variabili vengono convertiti in minuscolo.

1
 xport.open "nome_file"

Suggerimento

Se si ha accesso a un’istanza locale di SAS o a un server SAS/SHARE, è possibile usare il driver SAS ODBC per connettersi e leggere dalle librerie di dati SAS.

<<

Xlsx

xlsx gestisce file Excel nel formato 2007-2010 (.xlsx).

Il file deve contenere i nomi delle variabili nella prima riga del foglio di lavoro. Se non viene specificato il nome del foglio di lavoro, si assume che il nome sia uguale al nome del file.

save

Con xlsx.save, oltre al foglio dei dati è possibile salvare un ulteriore foglio con le etichette delle variabili e uno con la legenda.

Argomenti aggiuntivi:

  • :sheets => [:values, :labels, :codebook] permette di esportare fino a tre fogli, uno con i valori, uno con le etichette ove presenti, uno con la legenda delle variabili. default: [:values, :codebook]. E’ possibile indicare anche il nome del foglio: {:codebook => "Legenda"}

  • :links => true|false: attiva (true il default) o disattiva (false) i link alle variabili tra i diversi fogli

  • :na => value: specifica un valore (numerico o stringa) da inserire al posto dei valori mancanti (blank).

  • freeze => ref: la posizione rispetto a cui bloccare lo scorrimento dei fogli (default: B2 blocca la prima riga e la prima colonna). Esempi: A1 non blocca nulla; A2 blocca solo la prima riga; D3 blocca le prime due righe e le prime tre colonne.

  • zoom => perc: imposta la percentuale di zoom dei fogli

  • filter => true|false: attiva (default)/disattiva i filtri nelle colonne dei fogli

  • :vheader => :name|:label|:both determina l’intestazione delle colonne per il foglio dei valori:

    • :name: il nome della variabile (il default);
    • :label: l’etichetta della variabile;
    • :both: entrambe.
  • :lheader => :name|:label|:both: determina l’intestazione delle colonne per il foglio delle etichette:

  • :nolevel => :value|:none: nel foglio delle etichette, se i livelli sono incompleti riporta il valore (:value default) o blank (:none)

  • :labelcol => true|:name|:label|:same|'suffix': nel foglio dei valori, quando nella variabile sono presenti le etichette dei valori, aggiunge una colonna con le etichette. L’intestazione della colonna è definita da:

    • true: aggiunge "_label" al nome della variabile;
    • :name: il nome della variabile;
    • :label: l’etichetta della variabile;
    • :same: utilizza la stessa intestazione della colonna dei valori;
    • 'suffix': aggiunge il suffisso specificato al nome della variabile.
1
2
3
4
5
6
7
 xlsx.save "nome_file", :vars => [:sesso, :eta, :area, :ipf, :espcam, :espuni],
                        :sheet => "nome_foglio"

 xlsx.save "nome_file", :sheets => [:values, :labels], :na => "__NO_ANSWER__"
 xlsx.save "nome_file", :sheets => [:values, {:labels => "Etichette"}, {:codebook => "Legenda"}], :nolevel => :none

 xlsx.save 'mix', :sheets => :values, :addlabels => "_str"

open

xlsx.open apre una matrice di dati. I dati verranno etichettati se indicato il parametro :labels oppure :labeldata.

Argomenti aggiuntivi:

  • :na => value|valuelist: specifica un valore o una lista di valori (numerici o stringa) utilizzati come mancata risposta; verranno trasformati in blank
  • :noconv => []: permette di specificare i nomi delle variabili stringa che anche se contengono valori che appaiono come numeri non devono essere convertiti in variabili numeriche
  • :labels => "name": il nome del foglio che contiene la descrizione delle variabili (codebook) che verranno utilizzate per etichettare le variabili del foglio dei dati. E’ alternativo a :labeldata
  • :labeldata => "name": il nome del foglio che contiene la matrice di dati espressa come etichette. Le etichette verranno utilizzate per etichettare le variabili del foglio dei dati. E’ alternativo a :labels
  • :lheader => :name|:label: se specificato :labeldata, :label indica che la prima riga contiene le etichette della variabile e non i nomi. In questo caso la posizione delle variabili nel foglio con i dati e nel foglio con le etichette deve essere identica
  • :hnames => namelist: i nomi delle variabili
  • :row_header => #|:search: il numero di riga in cui si trovano le intestazioni dei campi e da cui iniziare la lettura della matrice di dati. Se viene indicato :search, ptabs2 cercherà di individuare la riga da solo
  • :skip => rowlist: i numeri delle righe che devono essere ignorate
  • :sheets => list: i nomi o i numeri dei fogli da leggere; i dati verranno accodati un foglio dopo l’altro; la variabile _sheet_name_ conterrà il nome del foglio
  • :wss => text: quando specificato :sheets, indica la radice dei worksheets in cui caricare i dati dei fogli invece di accodarli
1
2
3
4
5
6
7
8
 xlsx.open "nome_file", :sheet => "nome_foglio_dati", :labels => "nome_foglio_etichette"

 xlsx.open 'nome_file2', :sheets => ["2017", "2018", "2019"], :row_header => :search do
   rename /_\d{4}/ => ''
   rename "_sheet_name_" => "year"
   delete "total__"
   select "FILLED(label)"
 end

get

xlsx.get ha i seguenti argomenti aggiuntivi:

  • :header: legge i nomi delle variabili nella prima riga: true|false, default: true
  • :empty: comportament nel caso di righe vuote: :skip|:keep|:stop, default: :stop
  • :as_num: converte in valori numerici quello che appare come un numero: true|false, default: true

edit

xlsx.edit permette di aprire e modificare il contenuto di un file xlsx: vedi Aggiornamento file Xlsx

copy

xlsx.copy permette di copiare uno o più fogli da un file xlsx all’altro.

1
2
3
xlsx.copy(filename [, sheetnumbers|sheetnames]).to(filename [, :pos => number|:first|:last).save([filename])

xlsx.copy("Legenda", "Foglio1").to("Trimestre_AprGiu", :pos => 2).save("Trimestre_AprGiu_new")

Per copiare fogli in un output generato da pTabs2, utilizzare xlsx.copy.

1
2
3
render :xlsx, :file => "Report2", :index => "IndexReport2"

xlsx.copy("Report2", [1, 2]).to("Report1", :pos => :last).save

Attenzione

Il metodo copy è disponibile solo se sul computer è installato Microsoft Excel.

matrix

Con xlsx.matrix è possibile creare un file xlsx a partire da una matrice di dati (vettore di vettori).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
mtx = [
  ["ID", "Giorni"],
  [1, "Lunedì"],
  [2, "Martedì"],
  [3, "Mercoledì"],
  [4, "Giovedì"],
  [5, "Venerdì"],
  [6, "Sabato"],
  [7, "Domenica"],
]
xlsx.matrix "Giorni", mtx, :filter => true, :zoom => 120, :freeze => "B2"

convert

xlsx.convert: vedi Tabella di metadati.

<<

CSV, SSV, TSV

csv gestisce dati in formato delimitato.

Le varianti ssv e tsv, impostano automaticamente i separatori come :s=>';', :d=>',' (ssv) e :s=>'\t', :d=>'.' (tsv).

La prima riga del file deve contenere i nomi delle variabili.

Argomenti aggiuntivi:

  • :vars => [varlist] specifica l’elenco delle variabili
  • :id => :varname specifica una variabile su cui ordinare i dati.
  • :s => "carattere" specifica il separatore di campo (default: ,).
  • :d => "carattere" specifica il separatore dei decimali (default: .).

csv.open ha i seguenti argomenti aggiuntivi:

  • :na => value|valuelist specifica un valore o una lista di valori (numerici o stringa) utilizzati come mancata risposta; verranno trasformati in blank

csv.save ha i seguenti argomenti aggiuntivi:

  • :na => value specifica un valore (numerico o stringa) da inserire al posto dei valori mancanti (blank).
1
2
3
4
5
6
7
 csv.open "nome_file", :s => ';', :d => '.'
 ssv.open "nome_file"

 ssv.label "nome_file"
 ssv.open "nome_file", :label => "nome_file_etichette"

 tsv.save "nome_file", :vars => [:sesso, :eta, :area, :ipf, :espcam, :espuni], :na => "NULL"

<<

Nipo ODIN/Diana

odin gestisce i file generati da un questionario Nipo ODIN.

open

odin.open apre un file di dati in formato fisso generato da un questionario Nipo ODIN.

Oltre al file di dati, deve essere presente anche il file contenente la descrizione delle variabili in formato Diana. Le estensioni predefinite sono .dat per i dati e .var per i metadati.

Argomenti aggiuntivi:

  • filename: il nome del file di dati. Viene aggiunta l’estensione .dat a meno che il nome non finisca con u
  • :var => filename: il nome del file VAR. Se non specificato viene usato lo stesso nome del file di dati
  • :encoding => []: permette di specificare l’encoding del file di dati e/o del file VAR.
1
2
3
4
5
 odin.open "survey"
 odin.open "survey", :var => "survey01"
 odin.open 'survey', :encoding => 'utf-8'                  # encoding del file di dati
 odin.open 'survey', :encoding => ['utf-8', 'iso-8859-15'] # encoding di entrambi i file
 odin.open 'survey', :encoding => [nil, 'iso-8859-15']     # encoding del file .var

verbatim

odin.verbatim legge il file delle risposte aperte (o) e genera un file xlsx per la codifica.

Oltre al file di dati, deve essere presente anche il file contenente la descrizione delle variabili in formato Diana.

Se al momento dell’esecuzione del comando è attivo un file di dati (il file di dati delle risposte chiuse), è possibile inserire nel file xlsx delle variabili.

Oltre al foglio o ai fogli delle verbalizzazioni, vengono generati i fogli:

  • Labels con le etichette delle variabili a cui possono essere aggiunti i nuovi codici creati dalla codifica
  • Info con le informazioni necessarie alla procedura coding per unire la codifica al file di dati. Le informazioni generate vanno integrate dall’utente, inserendo, per esempio, i codici esclusivi delle multiple o i nomi delle nuove variabili che verrnno creata con la codifica.

Argomenti aggiuntivi:

  • filename: il nome del file delle aperte. Viene aggiunta l’estensione .o a meno che il nome non finisca con o
  • :var => filename: il nome del file VAR. Se non specificato viene usato lo stesso nome del file delle aperte
  • :xlsx => filename: il nome del file xlsx di output
  • :id => :varname: il nome da attribuire alla variabile dell’identificativo dei record (default: IntNr)
  • :ncodes => #: il numero di colonne per la codifica (default: 5)
  • :keep => [varlist]: le variabili del file attivo che si vogliono riportare nel file xlsx
  • :by => :varname: il nome della variabile che identifica i record del file attivo (default: lo stesso del parametro :id)
  • :labels => true|false: se true inserisce le label (se presenti) delle variabili e non i codici (default: true)
  • :split => true|false: se true genera un foglio per ciascuna domanda (default: false)
  • :alt => true|false: se true colora in modo alternato le righe delle verbalizzazioni (default: false)
1
odin.verbatim "verbo", :var => "verb.var", :xlsx => "verbatims2", :keep => [:sex, :user], :by => :intnr

paradata

odin.paradata legge i file di paradata (.csv) di Nipo Nfield.

Argomenti aggiuntivi:

  • filename: il nome del file di paradata
  • :keep => [varlist]: l’elenco di variabili da includere
  • :noconv => [varlist]: l’elenco delle variabili che non devono essere convertite in numeriche
1
odin.paradata "nomefile", :noconv => [:id]

<<

Triple-S

sss gestisce dati in formato Triple-S.

Oltre al file di dati, deve essere presente anche il file contenente i metadati Triple-S. Le estensioni predefinite sono .asc per i dati e .xml per i metadati.

Argomenti aggiuntivi:

  • :xml => filename: nome del file dei metadati Triple-S. Se non specificato viene usato lo stesso nome del file di dati
  • :encoding => [data_encoding, meta_encoding]: specifica l’encoding del file di dati e del file dei metadati. Utilizzare nil al posto di un encoding per specificare solo l’altro encoding.

sss.save ha i seguenti argomenti aggiuntivi:

  • :find_md => true|false: cerca i gruppi di risposte multiple in base al nome delle variabili e ai valori contenuti
1
2
3
4
5
6
 sss.open "survey"
 sss.open "survey2.dat", :xml => "survey.xml", :encoding => [nil, 'UTF-8']

 sss_xml_version 1.2

 sss.save "survey", :find_md => true

Il parametro di configurazione sss_xml_version specifica la versione di scrittura dei file Triple-S. Valori consentiti: 1.1, 1.2, 2.0 e 3.0.

Encoding

  • File XML:
    • Versione 3.0: UTF-8 (default) oppure Windows-1252. Altri encoding vengono sconsigliati.
    • Versioni precedenti: UTF-8 (default) oppure ISO-8859-1.
  • File di dati:
    • Versione 3.0: Windows-1252 (default) oppure UTF-8.
    • Versioni precedenti: solo ISO-8859-1.

<<

Testo

fwf gestisce dati in file ASCII in formato fisso (Fixed Width Format).

open

fwf.open legge i dati da una file in formato fisso.

Argomenti aggiuntivi:

  • :datalist|:data => []: l’elenco delle variabili e delle posizioni come unica stringa o come vettore di stringhe. [1] Per ciascuna variabile o gruppo di variabili specificare:

    • nome il nome, l’elenco dei nomi separato da virgola o un elenco generato dalla funzione s()
    • # la posizione, se la lunghezza del campo è uguale a 1, oppure #-## la posizione di inizio e la posizione di fine
    • :tipo il tipo di dato (opzionale, default :integer)
    • # il numero di decimali (opzionale, solo per tipo :dec)

Tipi di dato:

  • :string|:a|:alpha|:text: variabile stringa (risultato: :string)
  • :integer|:int|:i: variabile di numeri interi (risultato: :integer)
  • :single|:sng: variabile singola, interi con etichette dei livelli (risultato: :single)
  • :float|:f|:double: variabile di numeri decimali. Il separatore di decimale può essere la virgola o il punto (risultato: :float)
  • :dec: variabile con decimali impliciti; è necessario specificare anche il numero di decimali (risultato: :float)
  • :md: set di variabili multidicotomy: indicare l’elenco delle variabili o la radice del nome e le posizioni complessive (risultato: set di :md)

Gli allineamenti non sono rilevanti, ma non devono essere inseriti spazi all’interno di ciascun elemento.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
fwf.open "nome_file", :data => %w(
  ser_no          1-4
  area            5
  sesso           6
  eta             9-10
  titolo          11
  prof            12-13
  d1,d2,d5        15-20
  d7              28-37 :md
  s(:d8_,1..8,99) 121-129 :md
  price           39-43 :dec 2
  nome            50-59 :a
  cognome         60-69 :a
  indirizzo       70-99 :a
  peso            100-115 :float
)

fwf.open "nome_file", :data => "ser_no 1-4 area 5 d1 15 d5 17 cognome 60-69 :a"

save

fwf.save salva i dati in un file in formato fisso.

Argomenti aggiuntivi:

  • :sep => 'string': stringa separazione dati (default: nil)
  • :zero => true|false|[varlist]: numeri con zeri a sinistra (default: false)
  • :reclen => n: genera record di lunghezza n (default: nil)
  • :fill => 'chr': carattere di riempimento dei record (default: ‘ ‘ (spazio))
  • :fdate => 'format': formato date (default: %d-%m-%Y)
  • :fdatetime => 'format': formato datetime (default: %d-%m-%Y %H:%M:%S)
  • :nmiss => value: valore per sostituire i valori mancanti nelle variabili numerichen (default: nil)
  • :smiss => value: valore per sostituire i valori mancanti nelle variabili stringa (default: nil)
  • :dmiss => value: valore per sostituire i valori mancanti nelle variabili date (default: nil)
  • :tmiss => value: valore per sostituire i valori mancanti nelle variabili datetime (default: nil)
  • :spss_encoding => :utf8|:iso: encoding script SPSS (default: :utf8)
  • :out => [list]: ulteriori file da produrre: :map mappa in formato xlsx; :sps script SPSS con data list; :quantum script assi Quantum (default: [:map])
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
fwf.save "test20fix", :keep => [:ser_no, :area, :sesso, :etaq, :eta, :d1, :d2, :d5, :peso, :giorno, :ora, :name],
  :sep => ' ',
  :zero => [:ser_no, :peso],
  :reclen => 100,
  :fill => '-',
  :fdate => '%Y%m%d',
  :fdatetime => "%Y%m%d%H%M%S",
  :nmiss => 9,
  :smiss => "...",
  :dmiss => Date.parse("1999-12-31"),
  :tmiss => Time.parse("1999-12-31 23:59:59")

  pr "test20fix.dat", 5, nil, true
+ scrittura del file di dati: D:/pTabs/pTabs2/__test/test20fix.dat
+----+--------+-------+-----+------+------+----------+
| #  |  name  | start | end | size | ndec |   type   |
+----+--------+-------+-----+------+------+----------+
|  1 | ser_no |     1 |   4 |    4 |    0 | integer  |
|  2 | area   |     6 |   6 |    1 |    0 | numeric  |
|  3 | sesso  |     8 |   8 |    1 |    0 | numeric  |
|  4 | etaq   |    10 |  11 |    2 |    0 | integer  |
|  5 | eta    |    13 |  14 |    2 |    0 | numeric  |
|  6 | d1     |    16 |  16 |    1 |    0 | numeric  |
|  7 | d2     |    18 |  18 |    1 |    0 | numeric  |
|  8 | d5     |    20 |  20 |    1 |    0 | numeric  |
|  9 | peso   |    22 |  29 |    8 |    3 | real     |
| 10 | giorno |    31 |  38 |    8 |    0 | date     |
| 11 | ora    |    40 |  53 |   14 |    0 | datetime |
| 12 | name   |    55 |  94 |   40 |    0 | string   |
+----+--------+-------+-----+------+------+----------+

+ sono stati scritti 20 record e 12 variabili
             0         0         0         0         0         0         0         0         0         1
             1         2         3         4         5         6         7         8         9         0
    1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
01: 0002 1 2 15  1 4 3 9 0001.262 20181009 20181009065023 JNXFDWSOEJH JPVQCF                      ------
02: 0009 1 2 24  2 3 1 9 0001.597 20181004 20181004162408 GOMSFQWZPFBI VJBKNUQ                    ------
03: 0010 1 1 27  3 4 1 9 0001.969 20181014 20181014203140 DQLLOWOO QZCQXWG                        ------
04: 0029 1 1 19  2 4 1 9 0001.719 20181005 20181005101115 OBWNXVLUQP HMQBYXMAD                    ------
05: 0032 1 2 25  3 4 3 2 0001.368 20181012 20181012074013 UDIZAOO PSLUTAZJ                        ------

<<

Origine dati ODBC

odbc gestisce origini dati ODBC.

Argomenti aggiuntivi:

  • dsnname o :db => dsnname: il Database Source Name (DSN) registrato sul computer
  • :uid => login: il nome dell’account per l’accesso al database
  • :pwd => password: la password per l’accesso al database

open

odbc.open legge i dati da una tabella o da una query.

Argomenti aggiuntivi:

  • :table => table_name: il nome della tabella (se non usato sql)
  • :sql => sql_string: la stringa di istruzioni in linguaggio SQL (se non usato table)
1
2
odbc.open "nome_DSN", :uid => "login", :pwd => "password", :table => "nome_tabella"
odbc.open "nome_DSN", :uid => "login", :pwd => "password", :sql => "SELECT * FROM nome_tabella"

save

odbc.save crea una nuova tabella e inserisce i dati.

Argomenti aggiuntivi:

  • :table => table_name: il nome della tabella
  • :erase => true|false: elimina la tabella prima dell’inserimento dei dati (default: false)
  • :create => true|false: crea la tabella prima dell’inserimento dei dati (default: true)
  • :insert => true|false: inserisce i dati (default: true)
  • :chunks => number: specifica quanti record vengono inseriti alla volta (default: 1000)
1
odbc.save "nome_DNS", :uid => "login", :pwd => "password", :table => "table1", :keep => [:ser_no, :sex, :eta, :mcr, :peso, :day, :v1])

exec

odbc.exec esegue una query.

Argomenti aggiuntivi:

  • :sql => sql_string: la stringa di istruzioni in linguaggio SQL da eseguire
1
odbc.exec "nome_DNS", :uid => "login", :pwd => "password", :sql => "DROP TABLE table1")

clear

odbc.clear elimina tutti i record di -una tabella.

Argomenti aggiuntivi:

  • :table => table_name: il nome della tabella

drop

odbc.drop elimina una tabella.

Argomenti aggiuntivi:

  • :table => table_name: il nome della tabella

config

Se si usano più istruzioni sulla stessa origine ODBC, può essere utile impostare i parametri di accesso con il metodo odbc.config.

1
2
3
4
5
6
7
odbc.config :uid => "user", :pwd => "password"
odbc.open "dbname", :table => "table1"
odbc.save "dbname", :table => "table2"

odbc.config :db => "dbname", :uid => "user", :pwd => "password"
odbc.open :table => "table1"
odbc.save :table => "table2"

<<

SQLite

sqlite gestisce i database in formato SQLite.

Utilizza la stessa sintassi di odbc.

<<

ds?

ds? stampa nell’output la struttura del dataset. Vedi: Esplorazione dei dati

Note

[1]%w(...) crea un vettore di stringhe senza la necessità di usare le virgolette e separare gli elementi con la virgola. Il separatore della stringa è lo spazio. Attenzione a non inserire ulteriori spazi all’interno dei diversi elementi.