Corretta read
git-svn-id: svn://10.65.10.50/trunk@4765 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
3ac58423fd
commit
3335e2fb3f
@ -184,17 +184,14 @@ void TMultiple_rectype::zero(char c)
|
||||
}
|
||||
|
||||
|
||||
int TMultiple_rectype::read(TRectype & rec, word op, word lockop)
|
||||
int TMultiple_rectype::read(TBaseisamfile & f, word op, word lockop)
|
||||
{
|
||||
TLocalisamfile f(num());
|
||||
int err = NOERR;
|
||||
|
||||
*this = rec;
|
||||
_nuovo = FALSE;
|
||||
|
||||
if (op == _isequal)
|
||||
{
|
||||
TRectype r(rec);
|
||||
TRectype r(*this);
|
||||
|
||||
err = TRectype::read(f, op, lockop);
|
||||
if (err != NOERR)
|
||||
@ -256,6 +253,26 @@ void TMultiple_rectype::enable_autoload(int logicnum,bool on)
|
||||
const int index = log2ind(logicnum);
|
||||
_autoload[index] = on;
|
||||
}
|
||||
|
||||
TRectype & TMultiple_rectype::insert_row(int row, int logicnum)
|
||||
{
|
||||
TRectype * r = new_body_record(logicnum);
|
||||
TRecord_array & b = body(logicnum);
|
||||
const int index = log2ind(logicnum);
|
||||
|
||||
set_body_key(*r);
|
||||
r->put(_numfields.row(index), row);
|
||||
b.insert_row(r);
|
||||
return *r;
|
||||
}
|
||||
|
||||
TRectype & TMultiple_rectype::new_row(int logicnum)
|
||||
{
|
||||
TRecord_array & b = body(logicnum);
|
||||
TRectype & r = b.row(-1, TRUE);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
bool TMultiple_rectype::autoload_enabled(int logicnum)
|
||||
{
|
||||
@ -265,10 +282,10 @@ bool TMultiple_rectype::autoload_enabled(int logicnum)
|
||||
// @cmember Aggiunge il corpo lgicnum
|
||||
void TMultiple_rectype::add_file(int logicnum, const char * numfield)
|
||||
{
|
||||
CHECK(_nfiles < maxfiles, "Too many files added");
|
||||
_logicnums[_nfiles] = logicnum;
|
||||
_autoload[_nfiles] = FALSE;
|
||||
_numfields.add(numfield, _nfiles++);
|
||||
CHECK(_nfiles < maxfiles, "Too many files added");
|
||||
_logicnums[_nfiles] = logicnum;
|
||||
_autoload[_nfiles] = FALSE;
|
||||
_numfields.add(numfield, _nfiles++);
|
||||
}
|
||||
|
||||
TMultiple_rectype::TMultiple_rectype(const TBaseisamfile* file)
|
||||
|
@ -84,6 +84,11 @@ public:
|
||||
// @cmember distrugge tutte le righe del record array del corpo
|
||||
void destroy_rows(int logicnum = 0) { body(logicnum).destroy_rows(); }
|
||||
|
||||
// @cmember inserisce una riga alla posizione <par row> nel record array del corpo <par logicnum>
|
||||
TRectype & insert_row(int row, int logicnum = 0);
|
||||
// @cmember inserisce una riga alla posizione <par row> nel record array del corpo <par logicnum>
|
||||
TRectype & new_row(int logicnum = 0);
|
||||
|
||||
// @cmember Abilita il caricamento del corpo <par lognum> insieme alla testata
|
||||
void enable_autoload(int lognum,bool on =TRUE);
|
||||
// @cmember Restituisce il flag di caricamento del corpo <par lognum> insieme alla testata
|
||||
@ -99,9 +104,9 @@ public:
|
||||
virtual TRectype & operator =(const char * r);
|
||||
virtual void zero(char c = '\0');
|
||||
|
||||
virtual int read(TRectype & rec, word op = _isequal, word lockop = _nolock);
|
||||
virtual int read(word op = _isequal, word lockop = _nolock) { return read(*this, op, lockop); }
|
||||
int read(TBaseisamfile & f, word op = _isequal, word lockop = _nolock) { return read(f.curr(), op, lockop); }
|
||||
virtual int read(TRectype & rec, word op = _isequal, word lockop = _nolock) {TLocalisamfile f(num()); *this = rec; return read(f, op, lockop); }
|
||||
virtual int read(word op = _isequal, word lockop = _nolock) { TLocalisamfile f(num()); return read(f, op, lockop); }
|
||||
int read(TBaseisamfile & f, word op = _isequal, word lockop = _nolock);
|
||||
|
||||
virtual int write(TBaseisamfile& f) const { return write_rewrite(f);}
|
||||
virtual int rewrite(TBaseisamfile& f) const { return write_rewrite(f, TRUE);}
|
||||
|
Loading…
x
Reference in New Issue
Block a user