Functions | |
int | CreateDatabaseFile (char *Name, int NumFields, FIELD_DATA_t *FieldData) |
Crea un DBF. | |
int | DeleteDatabaseFile (char *Name) |
Cancella un DBF. | |
int | OpenDatabaseFile (char *Name, int Mode) |
Apre un DBF. | |
int | CloseDatabaseFile (int handle) |
Chiude un DBF. | |
int | GetDBFInfo (int handle, DBF_INFO_t *DBFInfo) |
Legge informazioni di un DBF aperto. | |
int | GetFieldInfo (int handle, int NumFields, FIELD_DATA_t *FieldData) |
Legge informazioni di uno o piu' campi di un DBF aperto. | |
int | IsDBFHandle (int handle) |
Verifica se un handle è corretto. | |
int | IsDBFOpen (int handle) |
Verifica se un DBF e' aperto. | |
void | LPC_GestioneErrore (int ErrorCode, char *Func, char *Msg) |
Funzione di gestione dell'errore. |
|
Chiude un DBF. handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile().
|
|
Crea un DBF. Name è una stringa NULL terminated e rappresenta il nome del file da creare. Il nome del file deve contenere solo caratteri alfanumerici + il carattere '_' e deve iniziare con un carattere alfabetico. La lunghezza totale del nome viene troncata a DBF_NAME_LENGTH caratteri e viene aggiunta l'estensione DBF_EXTENSION. I campi del database sono numfields e sono definiti nel vettore di strutture FieldData. Per ogni campo deve essere definito:
Questa funzione scrive nel database l'header, che è così formato: Caratteri Valore DBF_NAME_LENGTH+1 Nome del database + NULL. Se il nome è più corto si riempie di NULL. 2 Numero di campi 4 Numero di record 2 Lunghezza totale Header 2 Lunghezza di ogni record 4 timestamp ultimo update FIELD_NAME_LENGTH+1 Nome del primo campo + NULL. Se il nome è più corto si riempie di NULL. .... FIELD_NAME_LENGTH+1 Nome dell'ultimo campo + NULL. Se il nome è più corto si riempie di NULL. 2 NULL+NULL Nel file LPC_Costanti.h vi sono 2 costanti per calcolare la lunghezza totale dell'Header: DBF_FIXED_HEADER_LEN lunghezza della parte fissa ad esclusione dei 2 NULL finali DBF_FIELD_LEN lunghezza della definizione di ogni campo. Una volta creato, il database file viene chiuso, e per essere utilizzato deve essere chiamata la funzione OpenDatabaseFile().
|
|
Cancella un DBF. Name è una stringa NULL terminated e rappresenta il nome del file da cancellare. Il nome del file deve contenere solo caratteri alfanumerici + il carattere '_' e deve iniziare con un carattere. La lunghezza totale del nome viene troncata a DBF_NAME_LENGTH caratteri. Al nome viene aggiunta l'estensione ".dbf". Il database deve essere chiuso, quindi viene verificato che non esista un file con lo stesso nome che inizi con DBF_OPEN_SHARE o DBF_OPEN_EXCL e con estensione DBF_OPEN_EXT.
|
|
Legge informazioni di un DBF aperto. handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile(). Riempie la struttura DBFInfo con tutte le informazioni del DBF. In particolare il record corrente (CurrentRec) e' sempre > 0, anche se non ci sono record (in quel caso vale 1). Indica infatti il punto di inizio di lettura del prossimo record. Per sapere se ci sono record, bisogna basarsi su NumRecs.
|
|
Legge informazioni di uno o piu' campi di un DBF aperto. handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile(). Riempie il vettore di strutture FieldData con le informazioni sui campi di un database precedentemente aperto con OpenDatabaseFile. La struttura in input deve contenere i nomi dei campi di cui si vogliono le informazioni, e NumFields deve essere settato al numero di elementi riempiti di FieldData. Se NumFields vale 0, vengono ritornate tutte le informazioni sui campi e FieldData deve essere allocato opportunamente.
|
|
Verifica se un handle è corretto. handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile(). Ritorna LPC_OK se l'handle e' valido.
|
|
Verifica se un DBF e' aperto. handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile().
|
|
Funzione di gestione dell'errore. Scrive un codice di errore, la funzione chiamante e un messaggio di errore. Per adesso l'errore viene stampato su stderr.
|
|
Apre un DBF. Name è una stringa NULL terminated e rappresenta il nome del file da aprire. Il nome deve rappresntare un database precedentemente creato. La lunghezza totale del nome viene troncata a DBF_NAME_LENGTH caratteri e viene aggiunta l'estensione ".dbf". Il database deve essere stato precedentemente creato con la CreateDatabaseFile Una volta aperto il file può essere usato e poi chiuso con la CloseDatabaseFile(). Il flag Mode può valere SHARED o EXCLUSIVE. Nel secondo caso può essere aperto solo da un processo. Quando il file viene aperto, viene creato un file con lo stesso nome che inizia con DBF_OPEN_SHARE o con DBF_OPEN_EXCL e con estensione DBF_OPEN_EXT. Se il file è già creato, nel secondo caso viene ritornato errore LPC_ERR_EXCLUSIVE. Il record corrente viene settato a 1, anche se non ci sono record nel DBF.
|