diff --git a/include/relation.cpp b/include/relation.cpp index 11490b0b8..9e1da4f0a 100755 --- a/include/relation.cpp +++ b/include/relation.cpp @@ -541,6 +541,21 @@ void TRelation::replace( } } +// @mfunc Sostituisce nella relazione un file +void TRelation::replacef( + TLocalisamfile* f, // @parm Descrittore del file sostituto + int lognum, // @parm Numero logico o alias + const char* relexprs, // @parm Nuova Espressione della relazione + int key) // @parm Nuova Chiave del file + +{ + int index=0; + if (lognum<0) index=alias2ind(lognum); + if (lognum>0) index=log2ind(lognum); + replace(f,index,relexprs,key); +} + + TRectype& TRelationdef::load_rec(TRectype& r, const TBaseisamfile& from) const { r.zero(); diff --git a/include/relation.h b/include/relation.h index 95106fcae..863630768 100755 --- a/include/relation.h +++ b/include/relation.h @@ -119,8 +119,10 @@ public: bool add(int logicnum, const char* relexprs, int key = 1, int linkto = 0, int alias = 0, bool allow_lock = FALSE); // @cmember Aggiunge una nuovo file alla relazione partendo dal nome della tabella bool add(const char* tabname, const char* relexprs, int key = 1, int linkto = 0, int alias = 0, bool allow_lock = FALSE); - // @cmember Sostituisce nella relazione un file + // @cmember Sostituisce nella relazione il file di indice index void replace(TLocalisamfile* f, int index = 0,const char * relexprs="",int key=1); + // @cmember Sostituisce nella relazione il file di ID lognum + void replacef(TLocalisamfile* f, int lognum = 0,const char * relexprs="",int key=1); // @cmember Aggiunge il record corrente virtual int write (bool force = TRUE);