Corretto da Angelo l'errore sul ripristino dell'indice: i Localisamfile con
memo o che usano altre istanze del localisamfile non mantenevano correttamente la chiave impostata se diversa da 1 Corretto da me e Guy un errore sui Isamtempfile: il distruttore causava la chiusura delle informazioni di tracciato dell'isam git-svn-id: svn://10.65.10.50/trunk@5780 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9aaadee30d
commit
72802a774b
@ -468,9 +468,7 @@ HIDDEN void relisfd(isfdptr & isfd)
|
||||
delete isfd->r;
|
||||
delete isfd;
|
||||
|
||||
#ifdef DBG
|
||||
isfd = NULL; // Per provocare errori
|
||||
#endif
|
||||
isfd = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -1470,7 +1468,7 @@ TLocalisamfile::TLocalisamfile(
|
||||
_oldkey = getkey();
|
||||
setkey(1);
|
||||
}
|
||||
else _was_open = FALSE;
|
||||
else _was_open = TRUE;
|
||||
}
|
||||
|
||||
// @mfunc Costruttore
|
||||
@ -1485,9 +1483,12 @@ TLocalisamfile::TLocalisamfile(
|
||||
|
||||
TLocalisamfile::~TLocalisamfile()
|
||||
{
|
||||
if (_was_open)
|
||||
setkey(_oldkey);
|
||||
close();
|
||||
if (_isamfile)
|
||||
{
|
||||
if (_was_open)
|
||||
setkey(_oldkey);
|
||||
close();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1495,7 +1496,7 @@ int TLocalisamfile::close()
|
||||
{
|
||||
int err = NOERR;
|
||||
|
||||
if (!_was_open)
|
||||
if (_was_open)
|
||||
{
|
||||
clearfilehnd();
|
||||
}
|
||||
@ -1535,13 +1536,13 @@ int TLocalisamfile::open(unsigned int mode)
|
||||
|
||||
if (openf[logicnum - 1] != NULL)
|
||||
{
|
||||
_was_open = FALSE;
|
||||
_was_open = TRUE;
|
||||
_isamfile = openf[logicnum - 1];
|
||||
}
|
||||
else
|
||||
{
|
||||
err = _open(mode, TRUE);
|
||||
_was_open = TRUE;
|
||||
_was_open = FALSE;
|
||||
}
|
||||
|
||||
setstatus(err);
|
||||
@ -2886,7 +2887,7 @@ HIDDEN int fld_cmp(const char* a, const char* b, int len, bool number)
|
||||
// TRectype (record di un file)
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
RecDes* TRectype::rec_des() const
|
||||
RecDes* TRectype::rec_des() const
|
||||
{
|
||||
const isdef* i = _logicnum < EXTERNAL_FILE ? openf[_logicnum-1] : ext_files[_logicnum - EXTERNAL_FILE];
|
||||
CHECKD(i, "Can't use a record of closed file ", _logicnum);
|
||||
|
Loading…
x
Reference in New Issue
Block a user