Patch level :2.0 518

Files correlati     :libs
Ricompilazione Demo : [ ]
Commento            :AO20041 (carico/scarico files: aggiornamento EOD/EOX)


git-svn-id: svn://10.65.10.50/trunk@11309 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2003-07-03 08:43:59 +00:00
parent 5e1eb303b3
commit ed129ca42e
4 changed files with 32 additions and 0 deletions

View File

@ -251,6 +251,11 @@ void TDir::set_eox (const RecNoType eox)
_dir->EOX = eox;
}
void TDir::set_eod (const RecNoType eod)
{
_dir->EOD = eod;
}
void TDir::set (const char *name, const RecNoType eod, const RecNoType flag, const char *des, const char *calc)
{
strncpy (_dir->SysName, name, sizeof (_dir->SysName));

View File

@ -109,6 +109,8 @@ public:
void set_name (const char * name);
// @cmember Setta l'EOX del file
void set_eox(const RecNoType eox);
// @cmember Setta l'EOD del file
void set_eod(const RecNoType eod);
// @cmember Setta la lunghezza del file
void set_len(const UINT16 len);
// @cmember Setta il file con i parametri passati

View File

@ -2293,6 +2293,24 @@ int TSystemisamfile::packindex(
return err;
}
void TSystemisamfile::update_file()
{
TFilename fname;
int logicnum = _logicnum;
int isam_handle = prefix().open_isamfile(logicnum, fname, FALSE, 1);
if (isam_handle > 0)
{
TCodeb_handle cb_handle = prefix().get_handle(isam_handle, 1);
const TRecnotype n = DB_reccount(cb_handle); //numero di elementi del file
TDir dir;
dir.get(_logicnum, _lock, _nordir, _sysdirop);
dir.set_eox(n);
dir.set_eod(n);
dir.put(_logicnum, _nordir, _sysdirop);
}
}
int TSystemisamfile::pack(bool vis, bool ask)
{
int err = packfile(vis);
@ -2508,6 +2526,11 @@ int TSystemisamfile::load(
close();
setstatus(err);
//aggiorna lo sheet con i nuovi valori di EOX EOD caricati
if (err == NOERR)
update_file();
return err;
}

View File

@ -584,6 +584,8 @@ class TSystemisamfile : public TIsamfile
// @cmember:(INTERNAL) Esegue la conversione sui record del file (utilizzando le espressione definite
// in fconv.ini)
void makelc(TRectype& rec);
// @cmember aggiorna l'eod e l'eox del file
void update_file();
// @access Public Member
public: