Patch level : 12.0 1174

Files correlati     : ba1.exe

Commento:
Migliorata protezione aggiornamento tracciati sulla base dei dati Team
This commit is contained in:
Alessandro Bonazzi 2022-06-18 18:25:47 +02:00
parent a18fa6ec27
commit 5b13c8ee81
2 changed files with 13 additions and 11 deletions

View File

@ -1981,24 +1981,26 @@ HIDDEN void translate_key(TToken_string& t)// Traduce l'espressione chiave di Co
t.add(is_dup ? "X" : " "); t.add(is_dup ? "X" : " ");
} }
int TSystemisamfile::recover(TDir & dir, TTrec & rec) int TSystemisamfile::recover(TDir & dir, TTrec & rec, const TDir & refdir)
{ {
TString name = dir.name();
TString refname = refdir.name();
if (name.mid(1) != refname.mid(1))
{
name = refdir.name();
dir.set_name(name);
dir.put(num(), _nordir, _sysdirop);
}
int err = NOERR; int err = NOERR;
TCodeb_handle fchk = DB_open(filename(), 1, 0); TCodeb_handle fchk = DB_open(filename(), 1, 0);
const int lenrec = rec.len(); const int lenrec = rec.len();
int lendir = dir.len(); int lendir = dir.len();
if (fchk < 0) if (fchk < 0)
return -1; return -1;
TDir refdir;
refdir.get(dir.num(), _nolock, _studir, _sysdirop);
if(dir.filename()!= refdir.filename())
{
dir.set_name(refdir.filename());
dir.put(num(), _nordir, _sysdirop);
}
if (lenrec != lendir) if (lenrec != lendir)
{ {
lendir = lenrec; lendir = lenrec;

View File

@ -708,7 +708,7 @@ public:
// @cmember Calcola lo spazio che il file occuperebbe se venisse esteso a <p eox> // @cmember Calcola lo spazio che il file occuperebbe se venisse esteso a <p eox>
long size(TRecnotype eox); long size(TRecnotype eox);
// @cmember Recupera il tracciato record dal file dbf // @cmember Recupera il tracciato record dal file dbf
int recover(TDir & dir, TTrec & rec); int recover(TDir & dir, TTrec & rec, const TDir & refdir);
// @cmember Esegue la conversione del tracciato record del file // @cmember Esegue la conversione del tracciato record del file
int update(const TTrec& newrec, bool interactive = false); int update(const TTrec& newrec, bool interactive = false);