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:
parent
e050b11c3a
commit
27f3b27c34
@ -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>)
|
// @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 )
|
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;
|
*_curs=nrec;
|
||||||
//read(_isequal,lockop);
|
|
||||||
rec=curr();
|
rec=curr();
|
||||||
setstatus(_curs->file().status());
|
setstatus(_curs->file().status());
|
||||||
return status();
|
return status();
|
||||||
@ -2421,8 +2428,8 @@ bool TSortedfile::empty()
|
|||||||
|
|
||||||
void TSortedfile::set_curr(TRectype * curr)
|
void TSortedfile::set_curr(TRectype * curr)
|
||||||
{
|
{
|
||||||
TLocalisamfile::set_curr(curr);
|
TLocalisamfile::set_curr(curr);
|
||||||
_curs->file().set_curr(curr);
|
_curs->file().set_curr(curr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @mfunc Costruttore.
|
// @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 = new TSorted_cursor(_rel,ordexpr,filter,nkey);
|
||||||
_curs->setfilter(filter,TRUE); //BUG: cursors doesn't update rel.
|
_curs->setfilter(filter,TRUE); //BUG: cursors doesn't update rel.
|
||||||
|
|
||||||
if (&curr()!=&(_curs->file().curr()))
|
if (&curr()!=&(_curs->file().curr()))
|
||||||
_curs->file().set_curr(&curr());
|
_curs->file().set_curr(&curr());
|
||||||
}
|
}
|
||||||
// @mfunc Distruttore
|
// @mfunc Distruttore
|
||||||
TSortedfile::~TSortedfile()
|
TSortedfile::~TSortedfile()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user