Rif mod. 95/40. Aggiunta browse_null() alle funzioni

TBaseisamfile::rewrite() e TBaseisamfile::rewriteat(). Cosi' si evitano
problemi di cancellazione o sostituzione delle chiavi. (Problema
riscontrato in Liquidazione IVA).


git-svn-id: svn://10.65.10.50/trunk@1920 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1995-10-04 13:58:21 +00:00
parent 538add6ec9
commit fea80fd094

View File

@ -789,6 +789,7 @@ int TBaseisamfile::rewrite(TDate& atdate)
_lasterr = cisread(_isamfile, save_rec, _isequal + _nolock); // Si Posiziona per sicurezza...
if (_lasterr == NOERR)
{
browse_null(curr().string(),DB_reclen(_isamfile->fhnd));
memcpy(DB_getrecord(_isamfile->fhnd), curr().string(),DB_reclen(_isamfile->fhnd));
_lasterr = DB_rewrite(_isamfile->fhnd);
if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
@ -808,6 +809,7 @@ int TBaseisamfile::rewrite(const TRectype& rec, TDate& atdate)
_lasterr = cisread(_isamfile, save_rec, _isequal + _nolock); // Si Posiziona per sicurezza...
if (_lasterr == NOERR)
{
browse_null(rec.string(),DB_reclen(_isamfile->fhnd));
memcpy(DB_getrecord(_isamfile->fhnd), rec.string(),DB_reclen(_isamfile->fhnd));
_lasterr = DB_rewrite(_isamfile->fhnd);
if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
@ -823,6 +825,7 @@ int TBaseisamfile::rewriteat(TRecnotype nrec)
NOT_OPEN();
if ((_lasterr=DB_go(_isamfile->fhnd,nrec))== NOERR)
{
browse_null(curr().string(),DB_reclen(_isamfile->fhnd));
memcpy(DB_getrecord(_isamfile->fhnd),curr().string(),DB_reclen(_isamfile->fhnd));
_lasterr=DB_rewrite(_isamfile->fhnd);
if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
@ -838,6 +841,7 @@ int TBaseisamfile::rewriteat(const TRectype& rec, TRecnotype nrec)
NOT_OPEN();
if ((_lasterr=DB_go(_isamfile->fhnd,nrec))== NOERR)
{
browse_null(rec.string(),DB_reclen(_isamfile->fhnd));
memcpy(DB_getrecord(_isamfile->fhnd),rec.string(),DB_reclen(_isamfile->fhnd));
_lasterr=DB_rewrite(_isamfile->fhnd);
if (_lasterr != NOERR) _lasterr = get_error(_lasterr);