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:
		
							parent
							
								
									538add6ec9
								
							
						
					
					
						commit
						fea80fd094
					
				@ -789,6 +789,7 @@ int TBaseisamfile::rewrite(TDate& atdate)
 | 
				
			|||||||
  _lasterr = cisread(_isamfile, save_rec, _isequal + _nolock); // Si Posiziona per sicurezza...
 | 
					  _lasterr = cisread(_isamfile, save_rec, _isequal + _nolock); // Si Posiziona per sicurezza...
 | 
				
			||||||
  if (_lasterr == NOERR)
 | 
					  if (_lasterr == NOERR)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
 | 
					    browse_null(curr().string(),DB_reclen(_isamfile->fhnd));
 | 
				
			||||||
    memcpy(DB_getrecord(_isamfile->fhnd), curr().string(),DB_reclen(_isamfile->fhnd));
 | 
					    memcpy(DB_getrecord(_isamfile->fhnd), curr().string(),DB_reclen(_isamfile->fhnd));
 | 
				
			||||||
    _lasterr = DB_rewrite(_isamfile->fhnd);
 | 
					    _lasterr = DB_rewrite(_isamfile->fhnd);
 | 
				
			||||||
    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
					    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...
 | 
					  _lasterr = cisread(_isamfile, save_rec, _isequal + _nolock); // Si Posiziona per sicurezza...
 | 
				
			||||||
  if (_lasterr == NOERR)
 | 
					  if (_lasterr == NOERR)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
 | 
					    browse_null(rec.string(),DB_reclen(_isamfile->fhnd));
 | 
				
			||||||
    memcpy(DB_getrecord(_isamfile->fhnd), rec.string(),DB_reclen(_isamfile->fhnd)); 
 | 
					    memcpy(DB_getrecord(_isamfile->fhnd), rec.string(),DB_reclen(_isamfile->fhnd)); 
 | 
				
			||||||
    _lasterr = DB_rewrite(_isamfile->fhnd);
 | 
					    _lasterr = DB_rewrite(_isamfile->fhnd);
 | 
				
			||||||
    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
					    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
				
			||||||
@ -823,6 +825,7 @@ int TBaseisamfile::rewriteat(TRecnotype nrec)
 | 
				
			|||||||
  NOT_OPEN();
 | 
					  NOT_OPEN();
 | 
				
			||||||
  if ((_lasterr=DB_go(_isamfile->fhnd,nrec))== NOERR)
 | 
					  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));
 | 
					    memcpy(DB_getrecord(_isamfile->fhnd),curr().string(),DB_reclen(_isamfile->fhnd));
 | 
				
			||||||
    _lasterr=DB_rewrite(_isamfile->fhnd);
 | 
					    _lasterr=DB_rewrite(_isamfile->fhnd);
 | 
				
			||||||
    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
					    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
				
			||||||
@ -838,6 +841,7 @@ int TBaseisamfile::rewriteat(const TRectype& rec, TRecnotype nrec)
 | 
				
			|||||||
  NOT_OPEN();
 | 
					  NOT_OPEN();
 | 
				
			||||||
  if ((_lasterr=DB_go(_isamfile->fhnd,nrec))== NOERR)
 | 
					  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));
 | 
					    memcpy(DB_getrecord(_isamfile->fhnd),rec.string(),DB_reclen(_isamfile->fhnd));
 | 
				
			||||||
    _lasterr=DB_rewrite(_isamfile->fhnd);
 | 
					    _lasterr=DB_rewrite(_isamfile->fhnd);
 | 
				
			||||||
    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
					    if (_lasterr != NOERR) _lasterr = get_error(_lasterr);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user