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;
|
int err = NOERR;
|
||||||
|
|
||||||
*this = rec;
|
|
||||||
_nuovo = FALSE;
|
_nuovo = FALSE;
|
||||||
|
|
||||||
if (op == _isequal)
|
if (op == _isequal)
|
||||||
{
|
{
|
||||||
TRectype r(rec);
|
TRectype r(*this);
|
||||||
|
|
||||||
err = TRectype::read(f, op, lockop);
|
err = TRectype::read(f, op, lockop);
|
||||||
if (err != NOERR)
|
if (err != NOERR)
|
||||||
@ -257,6 +254,26 @@ void TMultiple_rectype::enable_autoload(int logicnum,bool on)
|
|||||||
_autoload[index] = on;
|
_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)
|
bool TMultiple_rectype::autoload_enabled(int logicnum)
|
||||||
{
|
{
|
||||||
return _autoload[log2ind(logicnum)];
|
return _autoload[log2ind(logicnum)];
|
||||||
@ -265,10 +282,10 @@ bool TMultiple_rectype::autoload_enabled(int logicnum)
|
|||||||
// @cmember Aggiunge il corpo lgicnum
|
// @cmember Aggiunge il corpo lgicnum
|
||||||
void TMultiple_rectype::add_file(int logicnum, const char * numfield)
|
void TMultiple_rectype::add_file(int logicnum, const char * numfield)
|
||||||
{
|
{
|
||||||
CHECK(_nfiles < maxfiles, "Too many files added");
|
CHECK(_nfiles < maxfiles, "Too many files added");
|
||||||
_logicnums[_nfiles] = logicnum;
|
_logicnums[_nfiles] = logicnum;
|
||||||
_autoload[_nfiles] = FALSE;
|
_autoload[_nfiles] = FALSE;
|
||||||
_numfields.add(numfield, _nfiles++);
|
_numfields.add(numfield, _nfiles++);
|
||||||
}
|
}
|
||||||
|
|
||||||
TMultiple_rectype::TMultiple_rectype(const TBaseisamfile* file)
|
TMultiple_rectype::TMultiple_rectype(const TBaseisamfile* file)
|
||||||
|
@ -84,6 +84,11 @@ public:
|
|||||||
// @cmember distrugge tutte le righe del record array del corpo
|
// @cmember distrugge tutte le righe del record array del corpo
|
||||||
void destroy_rows(int logicnum = 0) { body(logicnum).destroy_rows(); }
|
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
|
// @cmember Abilita il caricamento del corpo <par lognum> insieme alla testata
|
||||||
void enable_autoload(int lognum,bool on =TRUE);
|
void enable_autoload(int lognum,bool on =TRUE);
|
||||||
// @cmember Restituisce il flag di caricamento del corpo <par lognum> insieme alla testata
|
// @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 TRectype & operator =(const char * r);
|
||||||
virtual void zero(char c = '\0');
|
virtual void zero(char c = '\0');
|
||||||
|
|
||||||
virtual int read(TRectype & rec, word op = _isequal, word lockop = _nolock);
|
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) { return read(*this, 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) { return read(f.curr(), op, lockop); }
|
int read(TBaseisamfile & f, word op = _isequal, word lockop = _nolock);
|
||||||
|
|
||||||
virtual int write(TBaseisamfile& f) const { return write_rewrite(f);}
|
virtual int write(TBaseisamfile& f) const { return write_rewrite(f);}
|
||||||
virtual int rewrite(TBaseisamfile& f) const { return write_rewrite(f, TRUE);}
|
virtual int rewrite(TBaseisamfile& f) const { return write_rewrite(f, TRUE);}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user