[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 395.   File «.DBF»: dBase III e derivati

Il software basato sui file in formato .DBF, ovvero quelli di dBase III, è stato molto importante nell'ambito del sistema operativo Dos. Nel suo piccolo ha permesso agli utenti di quel sistema operativo di realizzare delle strutture di dati che si avvicinavano alle potenzialità di una base di dati relazionale.

Ancora oggi si trovano programmi applicativi gestionali basati su questo formato, scritti probabilmente con il famoso compilatore Clipper. Attualmente è disponibile il compilatore Harbour, che si ripromette di offrire un ambiente totalmente compatibile con il passato; tuttavia è possibile leggere il contenuto di questi attraverso alcuni piccoli programmi.

395.1   Dbview

Il programma dbview (1) consente di leggere il contenuto dei file .DBF di dBase III e probabilmente anche le versioni di dBase IV.

dbview [opzioni] file_dbf

Se viene avviato senza opzioni, si ottiene la visualizzazione del contenuto del file indicato nel formato predefinito, come si vede dall'esempio seguente:

Articolo   : 1         
Descr      : bicicletta uomo                         
Prezzo u   : 500.00
Import     : T
Scadenza   : 20011120
Note       : 2

Articolo   : 2         
Descr      : bicicletta donna                        
Prezzo u   : 550.00
Import     : 
Scadenza   : 20011120
Note       : 3

Articolo   : 3         
Descr      : bicicletta uomo/donna leggera           
Prezzo u   : 600.00
Import     : 
Scadenza   : 20011120
Note       : 4

In realtà, così facendo, i nomi dei campi vengono mostrati in modo diverso dal reale, utilizzando anche le lettere minuscole ed eliminando i trattini bassi. Utilizzando l'opzione -r, il primo record apparirebbe così:

ARTICOLO   : 1         
DESCR      : bicicletta uomo                         
PREZZO_U   : 500.00
IMPORT     : T
SCADENZA   : 20011111
NOTE       : 2

È necessario osservare che i campi booleani (in questo caso si tratta di quello intitolato IMPORT) mostrano solo la lettera T per il valore Vero, altrimenti non si ha alcuna indicazione; inoltre, le date vengono espresse secondo il formato aaaammgg. Infine, dall'esempio non si intuisce, ma il campo NOTE è di tipo «memo» e in questo caso si sono persi i dati.

I dati contenuti nei file .DBF, dal momento che sono stati memorizzati presumibilmente con un sistema operativo Dos, utilizzano molto probabilmente un insieme di caratteri diverso da Latin 1 o comunque diverso da ciò che si utilizza con un sistema GNU. Pertanto, è probabile che sia necessario rielaborare ciò che si ottiene con dbview attraverso un programma di conversione come Recode (sezione 256.1). Tuttavia, è bene considerare che nella storia dei file .DBF sono state usate anche codifiche differenti dal solito IBM437 e di questo occorre tenerne conto quando ci si accorge che la conversione non funziona come ci si aspetterebbe.

Tabella 395.1. Alcune opzioni.

Opzione Descrizione

--browse

-b

Se si utilizza questa opzione, i record vengono mostrati su una sola riga per volta, separando i campi con un simbolo, il separatore, che di solito è costituito dai due punti (:).

--delimiter x

-d x

Con questa opzione è possibile specificare il simbolo da utilizzare per separare i campi dei record che vengono visualizzati. Il simbolo di separazione predefinito sono i due punti (:)

--description

-e x

In questo caso, oltre a mostrare il contenuto del file, nella parte iniziale vengono riepilogate le caratteristiche dei campi contenuti.

--omit

-o x

Non elenca il contenuto del file, ma si limita a dare le altre informazioni se richieste attraverso le opzioni opportune.

--reserve

-r x

Mostra i nomi dei campi così come sono stati memorizzati.

Segue la descrizione di alcuni esempi.

395.1.1   DBF2pg

Il programma dbf2pg (2) consente di leggere il contenuto di un file .DBF e di inserire i dati relativi in una tabella di una base di dati di PostgreSQL (capitolo 389 e successivi).

dbf2pg [opzioni] file_dbf

In base alle opzioni che vengono indicate, i dati possono essere aggiunti a una tabella esistente, oppure possono sostituire le righe di tale tabella, oppure si può creare una tabella da zero. Quello che conta è che i permessi fissati attraverso PostgreSQL consentano l'accesso e le operazioni che si intendono svolgere.

dbf2pg non è in grado di trasferire i campi «memo», quelli che tradizionalmente venivano creati utilizzando file con estensione .DBT.

Tabella 395.2. Alcune opzioni.

Opzione Descrizione

-v

-vv

Permette di avere informazioni sulle operazioni svolte, ottenendo un dettaglio maggiore nel secondo caso.

-h nodo

Permette di specificare il nodo a cui accedere per connettersi con il servente di PostgreSQL. In mancanza di questa indicazione, viene tentato l'accesso a localhost.

-d base_di_dati

Permette di specificare il nome della base di dati a cui ci si vuole connettere. In mancanza di questa indicazione, viene tentata la connessione con la base di dati test.

-t tabella

Permette di specificare il nome della tabella in cui si vogliono trasferire i dati del file .DBF. In mancanza di questa indicazione, viene tentato l'inserimento nella tabella test.

-D

Con questa opzione, si fa in modo di cancellare il contenuto della tabella di destinazione, prima di iniziare l'inserimento dei dati.

-c

Richiede espressamente che sia creata la tabella di destinazione. In mancanza di questa opzione, la tabella deve essere già disponibile, altrimenti l'operazione fallisce. Nel caso si utilizzi questa opzione mentre una tabella con lo stesso nome esiste già, si ottiene la cancellazione del suo contenuto prima di iniziare, come se fosse stata usata al suo posto l'opzione -D.

-f

Prima di procedere, converte i nomi dei campi in modo che questi siano scritti utilizzando solo lettere minuscole.

-l

-u

Con l'opzione -l si fa in modo che il contenuto dei campi venga convertito in lettere minuscole, mentre con l'opzione -u si ottiene una conversione in maiuscole.

-s nome_vecchio=nome_nuovo\
  \[,nome_vecchio=nome_nuovo]...

Con questa opzione si può stabilire la sostituzione di alcuni nomi dei campi della tabella. Ciò può essere particolarmente utile nel caso in cui i nomi originali siano incompatibili con PostgreSQL.

-s n_riga_iniziale

-e n_riga_finale

Le opzioni -s e -e permettono di definire l'intervallo di righe da trasferire, dove nel primo caso si indica la riga iniziale e nel secondo quella finale. Se non si indicano, il trasferimento parte dall'inizio e prosegue fino alla fine.

Segue la descrizione di alcuni esempi.

Appunti di informatica libera 2004.10.10 --- Copyright © 2000-2004 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>


1) Dbview   GNU GPL

2) DBF2pg   software libero con licenza speciale


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome file_171_dbf_187_dbase_nbsp_iii_e_derivati.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!