Modules | |
Costanti | |
Strutture | |
Funzioni comuni | |
Functions | |
void | LPC_GestioneErrore (int ErrorCode, char *Func, char *Msg) |
Stampa l'errore. | |
int | CreateDatabaseFile (char *Name, int NumFields, FIELD_DATA_t *FieldData) |
Crea un file di database con nome Name. | |
int | DeleteDatabaseFile (char *Name) |
Cancella un file di database con nome Name. |
|
Crea un file di database con nome Name.
Name è una stringa non nulla e NULL terminated e rappresenta il nome del file da creare.
NumFields è il numero dei campi del DBF che sono definiti nel vettore di strutture FieldData.
Una volta creato, il database file viene chiuso, e per essere utilizzato deve essere chiamata la funzione OpenDatabaseFile().
|
|
Cancella un file di database con nome Name.
Name è una stringa non nulla e NULL terminated e rappresenta il nome del file da creare.
Il database deve essere chiuso, cioe' non deve esistere un file con lo stesso nome e estensione
|
|
Stampa l'errore. Scrive un codice di errore, la funzione chiamante e un messaggio di errore. L'errore viene stampato su stderr. Il parametro ErrorCode è il codice di errore. Func e' il nome della funzione che sta intercettando l'errore e Msg e' il messaggio di errore.
Da notare che Func non è il nome della funzione che ha generato un errore, ma il nome della funzione che lo ha ricevuto. I codici di errore delle funzioni da implementare sono già definiti in LPC_Include.h Tutti i codice di errore sono negativi. Esempio di gestione dell'errore: int Insert() { .... if (NumFields < 0) { char Err[256]; (void) sprintf(Err, "Errore parametro NumFields negativo"); LPC_GestioneErrore(LPC_BAD_ARG, "Insert", Err); < Liberare tutta la memoria allocata in questa funzione > return(LPC_BAD_ARG); } .... } Esempio di gestione dell'errore su allocazione memoria: int Insert() { .... buf = calloc(10, sizeof(long)); if (!buf) { char Err[256]; (void) sprintf(Err, "Errore allocazione memoria"); LPC_GestioneErrore(LPC_NO_MEMORY, "Insert", Err); < Liberare tutta la memoria allocata in questa funzione > return(LPC_NO_MEMORY); } .... } Esempio di gestione dell'errore ritornato da una chiamata ad una funzione di sistema: int Insert() { .... ret = fwrite(buffer, sizeof(char), len, fp); if (ret != len) { char Err[256]; (void) sprintf(Err, "Errore di sistema [%d] in scrittura su file:[%s]", errno, strerror(errno)); LPC_GestioneErrore(LPC_ERR_WRITE, "Insert", Err); < Liberare tutta la memoria allocata in questa funzione > return(LPC_ERR_WRITE); } .... } Esempio di gestione errore per una chiamata ad una funzione interna: int Insert() { ... ret = GetDBFInfo(handle, &DBFInfo); if (ret != LPC_OK) { char Err[256]; (void) sprintf(Err, "Errore chiamata alla GetDBFInfo:[%d]", ret); LPC_GestioneErrore(ret, "Insert", Err); return(ret); } .... }
|