Specifiche Interne Modulo 3
[Modulo3]

Inserimento, cancellazione e spostamento su record

Formato di un record

Il record di un DBF ha come lunghezza totale la somma delle lunghezza dei campi così calcolate:

La sequenza dei valori rispetta la sequenza dei nomi dei campi.

NOTA: I size sopra elencati si intendono per architetture a 32 bit, dove cioè:

In altre architetture dovranno essere utilizzati tipi (ad.es.int, float) che abbiano lunghezze equivalenti.

Inserimento di un record

Quando un record viene inserito con modalità TOP o CURRENT, il file deve essere spostato per fare posto al nuovo record. Questo può essere fatto ricopiando una parte del file in una successiva, stando attenti a non sovrascrivere i dati presenti.
Non e' consentito leggere in memoria tutto il file in quanto potrebbe essere troppo lungo per un'allocazione di memoria. Non e' altresi' consentito effettuare copie di appoggio del file. Tutto deve essere fatto tramite le funzioni di spostamento, lettura e scrittura.
La funzione InsertBlankRecord() deve anche modificare il numero record e il timestamp che sono memorizzati sul file; attenzione a spostare nuovamente il puntatore di lettura/scrittura all'inizio del nuovo record inserito.
Fare anche attenzione ad effettuare un flush del buffer di I/O dopo ogni operazione di write e prima di una read.

Valore di un record vuoto

Il record inserito e' composto di tutti valori NULL.

Cancellazione di un record

Quando un record viene cancellato, il file deve essere "accorciato" di conseguenza.
Analogamente alla funzione di inserimento, non e' consentito leggere tutto il file in memoria ne' utilizzare su file temporanei.
Una volta effettuato lo spostamento necessario, e' possibile settare la lunghezza di un file con la funzione truncate().
La funzione DeleteRecord() deve anche modificare il numero record e il timestamp che sono memorizzati sul file; attenzione a riposizionare il puntatore di lettura/scrittura alla posizione che aveva prima della chiamata alla funzione. Fare anche attenzione ad effettuare un flush del buffer di I/O dopo ogni operazione di write e prima di una read.

Funzione di spostamento

La funzione di spostamento calcola il punto di spostamento secondo le specifiche ed effettua uno spostamento su file al punto indicato dagli argomenti. A seconda del valore del nuovo record e della modalita' di spostamento si hanno diversi codici di ritorno, come documentato nella funzion stessa.
Generated on Wed Apr 26 18:51:31 2006 for LPC - Modulo 3 by  doxygen 1.4.6-NO