Riportate nella sezione per Codebase 6 le modifiche per aprire

un file senza indici.


git-svn-id: svn://10.65.10.50/trunk@5387 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1997-10-16 14:01:39 +00:00
parent d6763dce8d
commit 5181adc65e
2 changed files with 19 additions and 11 deletions

View File

@ -104,9 +104,9 @@ void DB_exit(void)
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
apertura del file 'filename'. Il parametro mode consente se != 0 l'apertura apertura del file 'filename'. Il parametro mode consente se != 0 l'apertura
esclusiva esclusiva. Il parametro index consente se == 0 l'apertura senza indici
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
int DB_open(const char *filename,int mode) int DB_open(const char *filename,int mode,int index)
{ {
int i,found; int i,found;
@ -122,7 +122,11 @@ int DB_open(const char *filename,int mode)
/* se non ci sono posti liberi torna -1 */ /* se non ci sono posti liberi torna -1 */
if(found==-1) return(found); if(found==-1) return(found);
code_base.errorCode=0; code_base.errorCode=0;
if (index == 0) /* Se e' stata richiesta l'apertura senza indici, setta il flag */
code_base.autoOpen = 0;
dbdata[found]=d4open(&code_base,(char*)filename); dbdata[found]=d4open(&code_base,(char*)filename);
if (index == 0) /* Restore the configuration of opening indexes*/
code_base.autoOpen = 1;
if(dbdata[found]==0) return(-1); if(dbdata[found]==0) return(-1);
code_base.accessMode=0; code_base.accessMode=0;
d4tagSelect(dbdata[found],d4tagDefault(dbdata[found])); d4tagSelect(dbdata[found],d4tagDefault(dbdata[found]));
@ -616,7 +620,7 @@ int DB_packfile(short vis, const char * filename, long eod)
int rt=0,handle; int rt=0,handle;
code_base.autoOpen = 0; code_base.autoOpen = 0;
handle=DB_open(filename,1); /* Exclusive mode open! */ handle=DB_open(filename,1,0); /* Exclusive mode open! */
if (handle > -1) if (handle > -1)
{ {
char s[81]; char s[81];
@ -657,7 +661,7 @@ int DB_packmemo(short vis, const char * filename)
int rt=0,handle; int rt=0,handle;
code_base.autoOpen = 0; code_base.autoOpen = 0;
handle=DB_open(filename,1); /* Exclusive mode open! */ handle=DB_open(filename,1,0); /* Exclusive mode open! */
if (handle > -1) if (handle > -1)
{ {
char s[81]; char s[81];
@ -764,7 +768,7 @@ int DB_packindex(short vis, const char * filename, RecDes *r, long *peod, bool a
strcat(s,filename); strcat(s,filename);
code_base.autoOpen=0 ; code_base.autoOpen=0 ;
handle=DB_open(filename,1); /* Exclusive mode open */ handle=DB_open(filename,1,0); /* Exclusive mode open */
if (handle > -1) if (handle > -1)
{ {
int i; int i;
@ -1289,9 +1293,9 @@ void DB_exit(void)
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
apertura del file 'filename'. Il parametro mode consente se != 0 l'apertura apertura del file 'filename'. Il parametro mode consente se != 0 l'apertura
esclusiva esclusiva. Il parametro index consente se == 0 l'apertura senza indici
--------------------------------------------------------------------------*/ --------------------------------------------------------------------------*/
int DB_open(const char *filename,int mode) int DB_open(const char *filename,int mode, int index)
{ {
int i,found; int i,found;
@ -1307,7 +1311,11 @@ int DB_open(const char *filename,int mode)
/* se non ci sono posti liberi torna -1 */ /* se non ci sono posti liberi torna -1 */
if(found==-1) return(found); if(found==-1) return(found);
code_base.error_code=0; code_base.error_code=0;
if (index == 0) /* Se e' stata richiesta l'apertura senza indici, setta il flag */
code_base.auto_open = 0;
dbdata[found]=d4open(&code_base,(char*)filename); dbdata[found]=d4open(&code_base,(char*)filename);
if (index == 0) /* Restore the configuration of opening indexes*/
code_base.auto_open = 1;
if(dbdata[found]==0) return(-1); if(dbdata[found]==0) return(-1);
x4init(&xdb[found],dbdata[found],notdelete,dbdata[found]); x4init(&xdb[found],dbdata[found],notdelete,dbdata[found]);
code_base.exclusive=0; code_base.exclusive=0;
@ -1885,7 +1893,7 @@ int DB_packfile(short vis, const char * filename, long eod)
codebase.auto_open = 0 cosi' non apre gli indici codebase.auto_open = 0 cosi' non apre gli indici
*/ */
code_base.auto_open = 0; code_base.auto_open = 0;
handle=DB_open(filename,1); /* Exclusive mode open! */ handle=DB_open(filename,1,0); /* Exclusive mode open! */
if (handle > -1) if (handle > -1)
{ {
char s[81]; char s[81];
@ -1926,7 +1934,7 @@ int DB_packmemo(short vis, const char * filename)
int rt=0,handle; int rt=0,handle;
code_base.auto_open = 0; code_base.auto_open = 0;
handle=DB_open(filename,1); /* Exclusive mode open! */ handle=DB_open(filename,1,0); /* Exclusive mode open! */
if (handle > -1) if (handle > -1)
{ {
char s[81]; char s[81];
@ -2034,7 +2042,7 @@ int DB_packindex(short vis, const char * filename, RecDes *r, long *peod, bool a
/* codebase.auto_open = 0 cosi' non apre gli indici */ /* codebase.auto_open = 0 cosi' non apre gli indici */
code_base.auto_open=0 ; code_base.auto_open=0 ;
handle=DB_open(filename,1); /* Exclusive mode open */ handle=DB_open(filename,1,0); /* Exclusive mode open */
if (handle > -1) if (handle > -1)
{ {
int i; int i;

View File

@ -23,7 +23,7 @@ extern "C" {
#endif #endif
void DB_init(void); void DB_init(void);
void DB_exit(void); void DB_exit(void);
int DB_open(const char *filename,int mode); int DB_open(const char *filename,int mode,int index);
int DB_close(int handle); int DB_close(int handle);
char *DB_getrecord(int handle); char *DB_getrecord(int handle);
int DB_reclen(int handle); int DB_reclen(int handle);