Rilevato errore di uso dei tsorted file quando usati come file principale dei cursori

git-svn-id: svn://10.65.10.50/trunk@4773 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-06-27 14:20:46 +00:00
parent e050b11c3a
commit 27f3b27c34

View File

@ -2340,8 +2340,15 @@ int TSortedfile::read(TRectype& rec, word op , word lockop )
// @mfunc Legge il record alla posizione <p nrec> e lo copia in <p rec> (vedi <t TReclock>)
int TSortedfile::readat(TRectype& rec, TRecnotype nrec, word lockop )
{
// read(rec,_isequal,lockop);
// !!!!!!!!!!!!!! attenzione !!!!!!!!!!!!!!
// non usare un sorted file come file principale di un sorted cursor;
// portare invece le espressioni del sorted file a livello di cursore
// altrimenti questa readat non sempre funziona , perche' viene chiamata con
// parametri presi dalle funzioni a basso livello sugli isam, quindi relativi alle posizioni fisiche
// e non a quanto restituito da recno() (che da' la posizione all'interno del cursore)
*_curs=nrec;
//read(_isequal,lockop);
rec=curr();
setstatus(_curs->file().status());
return status();
@ -2421,8 +2428,8 @@ bool TSortedfile::empty()
void TSortedfile::set_curr(TRectype * curr)
{
TLocalisamfile::set_curr(curr);
_curs->file().set_curr(curr);
TLocalisamfile::set_curr(curr);
_curs->file().set_curr(curr);
}
// @mfunc Costruttore.
@ -2439,8 +2446,8 @@ TSortedfile::TSortedfile(int logicnum,TRelation * rel,const char * ordexpr,const
_curs = new TSorted_cursor(_rel,ordexpr,filter,nkey);
_curs->setfilter(filter,TRUE); //BUG: cursors doesn't update rel.
if (&curr()!=&(_curs->file().curr()))
_curs->file().set_curr(&curr());
if (&curr()!=&(_curs->file().curr()))
_curs->file().set_curr(&curr());
}
// @mfunc Distruttore
TSortedfile::~TSortedfile()