Modules | |
Costanti | |
Strutture | |
Funzioni comuni | |
Functions | |
void | LPC_GestioneErrore (int ErrorCode, char *Func, char *Msg) |
Stampa l'errore. | |
int | InsertBlankRecord (int handle, int Where) |
Inserisce un record vuoto in un database file aperto. | |
int | DeleteRecord (int handle) |
Cancella un record in un database file aperto. | |
int | GotoRecord (int handle, int Mode, long NumRec) |
Si sposta sui record di un database file aperto. |
|
Cancella un record in un database file aperto.
Cancella il record corrente nel file. handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile(). La data di ultima modifica del file viene settata alla data corrente, e il numero dei records viene decrementato di 1.
|
|
Si sposta sui record di un database file aperto.
Effettua uno spostamento di un certo numero di record su un database file aperto.
Il parametro Mode indica la modalità di spostamento e può valere:
La funzione ritorna il numero del nuovo record corrente o
|
|
Inserisce un record vuoto in un database file aperto. Inserisce un record vuoto in un DBF. Un record vuoto e' composto di tutti NULL.
handle deve essere un handle valido ricavato da una precedente chiamata alla OpenDatabaseFile().
In tutti i casi, il record corrente diventa il nuovo record inserito. La data di ultima modifica del file viene settata alla data corrente, e il numero dei records viene incrementato di 1.
|
|
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(int32_t)); 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); } .... }
|