Patch level : 12.0 nopatch

Files correlati     :
Commento        :

Implementazione invio regolarizzazioni al 07/11/2021
This commit is contained in:
Alessandro Bonazzi 2021-11-09 07:53:07 +01:00
parent 74ab2387d9
commit 11d236f90d
2 changed files with 54 additions and 10 deletions

View File

@ -712,6 +712,20 @@ TBaseisamfile::TBaseisamfile(
}
TBaseisamfile::TBaseisamfile(
const char* name, // @parm Nome del file esterno da aprire
const TTrec & desc) // @parm Indica la descrizione del file
{
const int err = DB_build(name, &desc.rec());
if (err != NOERR)
fatal_box("Non posso creare il file %s : errore n.ro %d", name, err);
_lasterr = NOERR;
TFilename filename(name);
CHECK(filename.full(), "Must define the file to open!");
_logicnum = prefix().get_handle(filename);
_current = new TRectype(this);
}
TBaseisamfile::~TBaseisamfile()
{
SAFE_DELETE(_current);
@ -941,7 +955,7 @@ int TBaseisamfile::_write(const TRectype& rec)
{
if (rec.has_memo())
((TRectype&)rec).write_memo(_isam_handle, _recno );
rec_cache(_logicnum).notify_change();
rec_cache(_logicnum).notify_change();
}
else
@ -1089,7 +1103,7 @@ int TBaseisamfile::_remove(const TRectype& rec)
{
if (curr().has_memo( ))
curr().init_memo();
rec_cache(_logicnum).notify_change();
rec_cache(_logicnum).notify_change();
DB_flush(fhnd);
}
else
@ -1372,6 +1386,13 @@ TLocalisamfile::TLocalisamfile(
{
}
TLocalisamfile::TLocalisamfile(
const char* name, // @parm Nome del file esterno da aprire
const TTrec & desc) // @parm Indica la descrizione del file
: TBaseisamfile(name, desc)
{
}
TLocalisamfile::TLocalisamfile(int logicnum, bool tmpfile)
: TBaseisamfile(logicnum)
{
@ -1475,6 +1496,19 @@ TIsamtempfile::TIsamtempfile(int logicnum, const char* radix, bool create, bool
n.insert("%", 0);
open(n, create, eod, eox);
TCodeb_handle cb_handle = prefix().get_handle(_isam_handle, _curr_key);
const int dbfreclen = DB_reclen(cb_handle);
const int trcreclen = prefix().get_reclen(logicnum);
if (dbfreclen != trcreclen)
{
TString msg;
msg.format("Lunghezza record incoerente sul file %d (%s): file=%d trc=%d",
num(), (const char*)description(), dbfreclen, trcreclen);
fatal_box(msg);
}
}
TIsamtempfile::~TIsamtempfile()
@ -1615,17 +1649,23 @@ int TIsamtempfile::close()
// TExternisamfile
///////////////////////////////////////////////////////////
TExternisamfile::TExternisamfile(const char* name, bool exclusive, bool index)
: TLocalisamfile(name)
: TLocalisamfile(name)
{
init(name, exclusive, index);
}
TExternisamfile::TExternisamfile(const char* name, const char* descname, bool exclusive, bool index)
: TLocalisamfile(name, descname)
: TLocalisamfile(name, descname)
{
init(name, exclusive, index);
}
TExternisamfile::TExternisamfile(const char* name, const TTrec & desc, bool exclusive, bool index)
: TLocalisamfile(name, desc)
{
init(name, exclusive, index);
}
TExternisamfile::~TExternisamfile()
{
close();
@ -4035,7 +4075,7 @@ TRectype& TRectype::operator =(const char* rec)
const char* TRectype::key(int numkey) const
{
TString& tmp = get_tmp_string(256);
TString& tmp = get_tmp_string(256);
__build_key(rec_des(), numkey, _rec, tmp.get_buffer(), false);
return tmp;
}
@ -4153,7 +4193,7 @@ bool TRectype::edit(int logicnum, const char* alternate_key_fields, const char*
xvt_fsys_remove_file(ininame);
if (ok)
if (ok && _logicnum < 1000)
rec_cache(logicnum).notify_change();
}
return ok;
@ -4378,7 +4418,7 @@ const char* TRecfield::operator =(const char* s)
_rec->put(_name, s);
else
__putfieldbuff( _len, _dec, _type, s, _p);
}
}
else
put_subfield(s);
_rec->setempty(FALSE);

View File

@ -1,4 +1,4 @@
+#ifndef __ISAM_H
#ifndef __ISAM_H
#define __ISAM_H
#ifndef __CURRENCY_H
@ -430,6 +430,8 @@ protected:
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire.
TBaseisamfile(const char* name, const char* descname = NULL);
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire.
TBaseisamfile(const char* name, const TTrec & desc);
int handle(int key = 0) const;
@ -756,6 +758,8 @@ protected:
TLocalisamfile(int logicnum, bool tmp);
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire (vedi <c TBaseisamfile>).
TLocalisamfile(const char* name, const char* descname = NULL);
// @cmember Costruttore per derivare TExternisamfile. <p Name> indica il file esterno da aprire (vedi <c TBaseisamfile>)
TLocalisamfile(const char* name, const TTrec & desc);
// @access Public Member
public:
@ -857,8 +861,8 @@ public:
// @cmember Costruttore. <p descname> é il nome del file che contiene la descrizione del file (estensione trr).
// <p exclusive> indica se aprire il file in modo esclusivo.
// <p index> indica se aprire il file con indici o meno
TExternisamfile(const char* name, const char * descname, bool exclusive = false,
bool index = true);
TExternisamfile(const char* name, const char * descname, bool exclusive = false, bool index = true);
TExternisamfile(const char* name, const TTrec &desc, bool exclusive = false, bool index = true);
// @cmember Distruttore
virtual ~TExternisamfile();
};