ablib01.h ablib09.h analisi.h : corretta l'inclusione degli header
ablib01.cpp ablib01.h : cambiato nome al tipo dll'id_numerico git-svn-id: svn://10.65.10.50/trunk@5937 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
a47344d0ca
commit
dca3e18971
@ -33,7 +33,7 @@ TAnalisi_bil::~TAnalisi_bil()
|
|||||||
|
|
||||||
//Estraggo un nodo: in ingresso ho un id e il codice della tabella;
|
//Estraggo un nodo: in ingresso ho un id e il codice della tabella;
|
||||||
//in output ho il record e le informazioni per sapere cosa fare di quel record
|
//in output ho il record e le informazioni per sapere cosa fare di quel record
|
||||||
TRectype TInsert_albero::extract_node(const TString &codtab,TRelana_id &id, TString &status)
|
TRectype TInsert_albero::extract_node(const TString &codtab,TNumeric_id &id, TString &status)
|
||||||
{
|
{
|
||||||
TToken_string key = codtab;
|
TToken_string key = codtab;
|
||||||
TRectype rec(LF_RELANA);
|
TRectype rec(LF_RELANA);
|
||||||
@ -44,7 +44,7 @@ TRectype TInsert_albero::extract_node(const TString &codtab,TRelana_id &id, TStr
|
|||||||
_status_node.restart();
|
_status_node.restart();
|
||||||
row_status = _status_node.get_hashobj();
|
row_status = _status_node.get_hashobj();
|
||||||
status = (TString&)row_status->obj();
|
status = (TString&)row_status->obj();
|
||||||
id = (TRelana_id)row_status->key();
|
id = (TNumeric_id)row_status->key();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -96,9 +96,12 @@ int TAnalisi_bil::commit_body(TLocalisamfile &relana) const
|
|||||||
//Estraggo un nodo per volta basandomi sull'assoc_array degli status
|
//Estraggo un nodo per volta basandomi sull'assoc_array degli status
|
||||||
while (_inter_tree->status_node_items() > 0)
|
while (_inter_tree->status_node_items() > 0)
|
||||||
{
|
{
|
||||||
TRelana_id id;
|
TNumeric_id id;
|
||||||
int prova = _inter_tree->status_node_items();
|
int prova = _inter_tree->status_node_items();
|
||||||
rec= _inter_tree->extract_node(get(ABAN_CODAN), id, status);
|
rec= _inter_tree->extract_node(get(ABAN_CODAN), id, status);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Ho un rectype e uno status node
|
//Ho un rectype e uno status node
|
||||||
if (status == NODO_AGGIUNTO)
|
if (status == NODO_AGGIUNTO)
|
||||||
{
|
{
|
||||||
@ -174,7 +177,7 @@ int TAnalisi_bil::read_body(bool lock_struct )
|
|||||||
_ana = new TAlbero_relana(get(ABAN_CODAN));
|
_ana = new TAlbero_relana(get(ABAN_CODAN));
|
||||||
}
|
}
|
||||||
// carica la copia locale
|
// carica la copia locale
|
||||||
TRelana_id id_relana;
|
TNumeric_id id_relana;
|
||||||
if (lock_struct)
|
if (lock_struct)
|
||||||
_relaz->lock();
|
_relaz->lock();
|
||||||
|
|
||||||
@ -192,7 +195,7 @@ int TAnalisi_bil::remove(TBaseisamfile& f) const
|
|||||||
/*Abilitare questa parte solo per effettuare un debug della delete_node
|
/*Abilitare questa parte solo per effettuare un debug della delete_node
|
||||||
// anche se messa in questa posizione, la chiamata non ha senso
|
// anche se messa in questa posizione, la chiamata non ha senso
|
||||||
TLocalisamfile lf(LF_RELANA);
|
TLocalisamfile lf(LF_RELANA);
|
||||||
TRelana_id id;
|
TNumeric_id id;
|
||||||
id = 17;
|
id = 17;
|
||||||
_inter_tree->delete_node(id);
|
_inter_tree->delete_node(id);
|
||||||
int errc = commit_body(lf);
|
int errc = commit_body(lf);
|
||||||
@ -225,9 +228,9 @@ void TAnalisi_bil::zero()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Naviga l'albero delle relazioni
|
//Naviga l'albero delle relazioni
|
||||||
void TAnalisi_bil::naviga_relazioni(const TRelana_id & begin_relana, const TRelana_id & id_prec,const TRelana_id & id_padre)
|
void TAnalisi_bil::naviga_relazioni(const TNumeric_id & begin_relana, const TNumeric_id & id_prec,const TNumeric_id & id_padre)
|
||||||
{
|
{
|
||||||
TRelana_id id_relana, currid;
|
TNumeric_id id_relana, currid;
|
||||||
TNodeId key_rel;
|
TNodeId key_rel;
|
||||||
_relaz->curr_id(key_rel);
|
_relaz->curr_id(key_rel);
|
||||||
_newrec = sincronizza_relana(begin_relana, id_relana);
|
_newrec = sincronizza_relana(begin_relana, id_relana);
|
||||||
@ -241,7 +244,7 @@ void TAnalisi_bil::naviga_relazioni(const TRelana_id & begin_relana, const TRela
|
|||||||
{ //Fratello di rel_voci trovato
|
{ //Fratello di rel_voci trovato
|
||||||
//Cerco un fratello anche su rel_ana: se non si trova c'è una inconsistenza nei dati
|
//Cerco un fratello anche su rel_ana: se non si trova c'è una inconsistenza nei dati
|
||||||
//fra relvoci e relana
|
//fra relvoci e relana
|
||||||
TRelana_id frat_relana;
|
TNumeric_id frat_relana;
|
||||||
naviga_relazioni(frat_relana,currid , id_padre);
|
naviga_relazioni(frat_relana,currid , id_padre);
|
||||||
//_ana->goto_node(key_ana); //Per risalire al nodo che mi ha chiamato in relana
|
//_ana->goto_node(key_ana); //Per risalire al nodo che mi ha chiamato in relana
|
||||||
_relaz->goto_node(key_rel);
|
_relaz->goto_node(key_rel);
|
||||||
@ -268,7 +271,7 @@ void TAnalisi_bil::naviga_relazioni(const TRelana_id & begin_relana, const TRela
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Sincronizza relana con quello che trovo in relaz: relaz è navigato da naviga_relazioni
|
//Sincronizza relana con quello che trovo in relaz: relaz è navigato da naviga_relazioni
|
||||||
TRectype *TAnalisi_bil::sincronizza_relana(const TRelana_id &begin_relana,TRelana_id &id_relana)
|
TRectype *TAnalisi_bil::sincronizza_relana(const TNumeric_id &begin_relana,TNumeric_id &id_relana)
|
||||||
{
|
{
|
||||||
id_relana=begin_relana;
|
id_relana=begin_relana;
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
@ -380,7 +383,7 @@ TInsert_albero::~TInsert_albero()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Setta lo stato del nodo: cioè decide che cosa dovrò fare con questo nodo
|
//Setta lo stato del nodo: cioè decide che cosa dovrò fare con questo nodo
|
||||||
void TInsert_albero::set_status_node(const TRelana_id &id, const char *status)
|
void TInsert_albero::set_status_node(const TNumeric_id &id, const char *status)
|
||||||
{
|
{
|
||||||
// STATUS A priorità assoluta e rimane sempre A
|
// STATUS A priorità assoluta e rimane sempre A
|
||||||
// STATUS M priorità su R ma non su A
|
// STATUS M priorità su R ma non su A
|
||||||
@ -421,7 +424,7 @@ void TInsert_albero::set_status_node(const TRelana_id &id, const char *status)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Restituisce un nuovo id
|
//Restituisce un nuovo id
|
||||||
TRelana_id &TInsert_albero::new_id(TRelana_id id)
|
TNumeric_id &TInsert_albero::new_id(TNumeric_id id)
|
||||||
{
|
{
|
||||||
if (id == ID_NULLO)
|
if (id == ID_NULLO)
|
||||||
_last_insert_id+1;
|
_last_insert_id+1;
|
||||||
@ -432,9 +435,9 @@ TRelana_id &TInsert_albero::new_id(TRelana_id id)
|
|||||||
|
|
||||||
//Inserisce il nodo (che ho in ingresso) nella struttura ad albero doppiamente linkata
|
//Inserisce il nodo (che ho in ingresso) nella struttura ad albero doppiamente linkata
|
||||||
//di relana aggiornando tutti i link
|
//di relana aggiornando tutti i link
|
||||||
bool TInsert_albero::insert_node(TRectype & node,const TRelana_id id_prec, const TRelana_id id_padre, TRelana_id id)
|
bool TInsert_albero::insert_node(TRectype & node,const TNumeric_id id_prec, const TNumeric_id id_padre, TNumeric_id id)
|
||||||
{
|
{
|
||||||
TRelana_id id_succ;
|
TNumeric_id id_succ;
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
key.add(node.get(ABRA_CODAN));
|
key.add(node.get(ABRA_CODAN));
|
||||||
TRectype parente(LF_RELANA);
|
TRectype parente(LF_RELANA);
|
||||||
@ -477,11 +480,11 @@ bool TInsert_albero::insert_node(TRectype & node,const TRelana_id id_prec, const
|
|||||||
|
|
||||||
|
|
||||||
//Questa funzione aggiorna i link dei "parenti" di un nodo che sta per essere rimosso
|
//Questa funzione aggiorna i link dei "parenti" di un nodo che sta per essere rimosso
|
||||||
bool TInsert_albero::delete_node(const TRelana_id &id)
|
bool TInsert_albero::delete_node(const TNumeric_id &id)
|
||||||
{
|
{
|
||||||
|
|
||||||
TRectype parente(LF_RELANA);
|
TRectype parente(LF_RELANA);
|
||||||
TRelana_id id_padre, id_figlio, id_prec, id_succ;
|
TNumeric_id id_padre, id_figlio, id_prec, id_succ;
|
||||||
|
|
||||||
goto_node(id);
|
goto_node(id);
|
||||||
TToken_string key = _currnode->get(ABRA_CODAN);
|
TToken_string key = _currnode->get(ABRA_CODAN);
|
||||||
@ -534,7 +537,7 @@ bool TInsert_albero::delete_node(const TRelana_id &id)
|
|||||||
_ana_cache->put(*_currnode);
|
_ana_cache->put(*_currnode);
|
||||||
//Elimino i miei figli
|
//Elimino i miei figli
|
||||||
|
|
||||||
TRelana_id nextnode_id;
|
TNumeric_id nextnode_id;
|
||||||
if (id_prec != ID_NULLO)
|
if (id_prec != ID_NULLO)
|
||||||
{
|
{
|
||||||
nextnode_id = id_prec;
|
nextnode_id = id_prec;
|
||||||
@ -579,9 +582,9 @@ bool TInsert_albero::delete_tree()
|
|||||||
|
|
||||||
//Questa funzione elimina tutti i nodi sottostanti al nodo
|
//Questa funzione elimina tutti i nodi sottostanti al nodo
|
||||||
//"principale" che sta per essere eliminato
|
//"principale" che sta per essere eliminato
|
||||||
bool TInsert_albero::remove_subtree(const TRelana_id thisnode_id)
|
bool TInsert_albero::remove_subtree(const TNumeric_id thisnode_id)
|
||||||
{
|
{
|
||||||
TRelana_id myself_id;
|
TNumeric_id myself_id;
|
||||||
//cerco il figlio
|
//cerco il figlio
|
||||||
if (has_son())
|
if (has_son())
|
||||||
{
|
{
|
||||||
@ -597,7 +600,7 @@ bool TInsert_albero::remove_subtree(const TRelana_id thisnode_id)
|
|||||||
goto_rbrother();
|
goto_rbrother();
|
||||||
remove_subtree(myself_id);
|
remove_subtree(myself_id);
|
||||||
}
|
}
|
||||||
TRelana_id id = _currnode->get(ABRA_ID);
|
TNumeric_id id = _currnode->get(ABRA_ID);
|
||||||
|
|
||||||
//Questa parte esegue la gestione dell'assoc_array degli stati
|
//Questa parte esegue la gestione dell'assoc_array degli stati
|
||||||
//in modo tale da mantenerlo allineato con il contenuto della cache
|
//in modo tale da mantenerlo allineato con il contenuto della cache
|
||||||
@ -655,7 +658,7 @@ bool TInsert_albero::goto_root()
|
|||||||
if (current()->get_real(ABRA_ID)==ID_NULLO)
|
if (current()->get_real(ABRA_ID)==ID_NULLO)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
TRelana_id id_prec, id_padre;
|
TNumeric_id id_prec, id_padre;
|
||||||
key.add(_currnode->get(ABRA_CODAN));
|
key.add(_currnode->get(ABRA_CODAN));
|
||||||
key.add(_currnode->get(ABRA_ID));
|
key.add(_currnode->get(ABRA_ID));
|
||||||
do
|
do
|
||||||
@ -723,7 +726,7 @@ TAlbero_relana::~TAlbero_relana()
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Incremento l'id per dare il primo id disponibile
|
//Incremento l'id per dare il primo id disponibile
|
||||||
TRelana_id & TAlbero_relana::new_id(TRelana_id id)
|
TNumeric_id & TAlbero_relana::new_id(TNumeric_id id)
|
||||||
{
|
{
|
||||||
if (id == ID_NULLO)
|
if (id == ID_NULLO)
|
||||||
_last_id = _last_id+1;
|
_last_id = _last_id+1;
|
||||||
@ -733,7 +736,7 @@ TRelana_id & TAlbero_relana::new_id(TRelana_id id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Posiziona relana sul record voluto
|
//Posiziona relana sul record voluto
|
||||||
bool TAlbero_relana::goto_id(const TRelana_id &id)
|
bool TAlbero_relana::goto_id(const TNumeric_id &id)
|
||||||
{
|
{
|
||||||
_relana->put(ABRA_CODAN,_codtab);
|
_relana->put(ABRA_CODAN,_codtab);
|
||||||
_relana->put(ABRA_ID,id);
|
_relana->put(ABRA_ID,id);
|
||||||
@ -785,7 +788,7 @@ bool TAlbero_relana::has_son() const
|
|||||||
//Ricerca il primo filglio di un nodo di relana
|
//Ricerca il primo filglio di un nodo di relana
|
||||||
bool TAlbero_relana::goto_firstson()
|
bool TAlbero_relana::goto_firstson()
|
||||||
{
|
{
|
||||||
TRelana_id id_figlio(_relana->get_real(ABRA_IDFIGLIO));
|
TNumeric_id id_figlio(_relana->get_real(ABRA_IDFIGLIO));
|
||||||
if (id_figlio > 0)
|
if (id_figlio > 0)
|
||||||
{ //Ci deve essere un figlio: lo cerco
|
{ //Ci deve essere un figlio: lo cerco
|
||||||
//Il CODAN deve rimanere uguale a quello del padre
|
//Il CODAN deve rimanere uguale a quello del padre
|
||||||
@ -807,7 +810,7 @@ bool TAlbero_relana::has_rbrother() const
|
|||||||
//Ricerca il fratello destro di un nodo di relana
|
//Ricerca il fratello destro di un nodo di relana
|
||||||
bool TAlbero_relana::goto_rbrother()
|
bool TAlbero_relana::goto_rbrother()
|
||||||
{
|
{
|
||||||
TRelana_id id_fratello(_relana->get_real(ABRA_IDSUCC));
|
TNumeric_id id_fratello(_relana->get_real(ABRA_IDSUCC));
|
||||||
if (id_fratello > 0)
|
if (id_fratello > 0)
|
||||||
{ //Ci deve essere un fratello: lo cerco
|
{ //Ci deve essere un fratello: lo cerco
|
||||||
//Il CODAN deve rimanere uguale a quello del fratello precedente
|
//Il CODAN deve rimanere uguale a quello del fratello precedente
|
||||||
@ -852,7 +855,7 @@ bool TAlbero_relana::has_lbrother() const
|
|||||||
//Ricerca il fratello sinistro di un nodo di relana
|
//Ricerca il fratello sinistro di un nodo di relana
|
||||||
bool TAlbero_relana::goto_lbrother()
|
bool TAlbero_relana::goto_lbrother()
|
||||||
{
|
{
|
||||||
TRelana_id id_fratello(_relana->get_real(ABRA_IDPREC));
|
TNumeric_id id_fratello(_relana->get_real(ABRA_IDPREC));
|
||||||
if (id_fratello > 0)
|
if (id_fratello > 0)
|
||||||
{//Ci deve essere un fratello: lo cerco
|
{//Ci deve essere un fratello: lo cerco
|
||||||
//Il CODAN deve rimanere uguale a quello del fratello successivo
|
//Il CODAN deve rimanere uguale a quello del fratello successivo
|
||||||
|
44
ab/ablib01.h
44
ab/ablib01.h
@ -12,12 +12,10 @@
|
|||||||
#endif //__APPLICAT_H
|
#endif //__APPLICAT_H
|
||||||
|
|
||||||
#ifndef _ABLI09_H
|
#ifndef _ABLI09_H
|
||||||
#define _ABLI09_H
|
|
||||||
#include "ablib09.h"
|
#include "ablib09.h"
|
||||||
#endif //_ABLIB09_H
|
#endif //_ABLIB09_H
|
||||||
|
|
||||||
#ifndef _ANALIS_H
|
#ifndef _ANALISI_H
|
||||||
#define _ANALIS_H
|
|
||||||
#include "analisi.h"
|
#include "analisi.h"
|
||||||
#endif //_ANALIS_H
|
#endif //_ANALIS_H
|
||||||
|
|
||||||
@ -103,17 +101,17 @@ public:
|
|||||||
virtual ~TAlbero_bidir() {}
|
virtual ~TAlbero_bidir() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef real TRelana_id;
|
typedef real TNumeric_id;
|
||||||
/*class TRelana_id : public real
|
/*class TNumeric_id : public real
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TRelana_id &operator =(const int &v)
|
TNumeric_id &operator =(const int &v)
|
||||||
{*((real *)this)=v; return *this;}
|
{*((real *)this)=v; return *this;}
|
||||||
TRelana_id &operator =(const real &v)
|
TNumeric_id &operator =(const real &v)
|
||||||
{*((real *)this)=v; return *this;}
|
{*((real *)this)=v; return *this;}
|
||||||
TRelana_id(const real &v)
|
TNumeric_id(const real &v)
|
||||||
{*this=v;}
|
{*this=v;}
|
||||||
TRelana_id()
|
TNumeric_id()
|
||||||
{}
|
{}
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
@ -122,7 +120,7 @@ class TAlbero_relana : public TAlbero_bidir
|
|||||||
{
|
{
|
||||||
TString16 _codtab;
|
TString16 _codtab;
|
||||||
TLocalisamfile *_relana;
|
TLocalisamfile *_relana;
|
||||||
TRelana_id _last_id;
|
TNumeric_id _last_id;
|
||||||
protected:
|
protected:
|
||||||
virtual void node2id(const TObject * node,TNodeId & id) const;
|
virtual void node2id(const TObject * node,TNodeId & id) const;
|
||||||
public:
|
public:
|
||||||
@ -148,7 +146,7 @@ public:
|
|||||||
virtual bool goto_node(TNodeId & id)
|
virtual bool goto_node(TNodeId & id)
|
||||||
{return(_relana->readat(atol(id))==NOERR); }
|
{return(_relana->readat(atol(id))==NOERR); }
|
||||||
// @cmember Si posiziona sul nodo specificato dall'id
|
// @cmember Si posiziona sul nodo specificato dall'id
|
||||||
bool goto_id(const TRelana_id &id);
|
bool goto_id(const TNumeric_id &id);
|
||||||
// @cmember Ritorna il nodo corrente
|
// @cmember Ritorna il nodo corrente
|
||||||
virtual TObject * curr_node() const;
|
virtual TObject * curr_node() const;
|
||||||
// @cmember Ritorna il nodo corrente
|
// @cmember Ritorna il nodo corrente
|
||||||
@ -160,7 +158,7 @@ public:
|
|||||||
// @cmember Inserisce un nodo nella struttura ad albero
|
// @cmember Inserisce un nodo nella struttura ad albero
|
||||||
//bool insert_node(real id);
|
//bool insert_node(real id);
|
||||||
// @cmember Restituisce un nuovo id (il primo disponibile)
|
// @cmember Restituisce un nuovo id (il primo disponibile)
|
||||||
TRelana_id &new_id(real id);
|
TNumeric_id &new_id(real id);
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TAlbero_relana( const char * tabcode);
|
TAlbero_relana( const char * tabcode);
|
||||||
// @cmember Distruttore
|
// @cmember Distruttore
|
||||||
@ -218,7 +216,7 @@ class TInsert_albero : public TAlbero_bidir
|
|||||||
TLocalisamfile *_f; // da rimuovere !!
|
TLocalisamfile *_f; // da rimuovere !!
|
||||||
|
|
||||||
TRectype *_currnode;
|
TRectype *_currnode;
|
||||||
TRelana_id _last_insert_id;
|
TNumeric_id _last_insert_id;
|
||||||
TAssoc_array _status_node;
|
TAssoc_array _status_node;
|
||||||
|
|
||||||
// debug
|
// debug
|
||||||
@ -226,11 +224,11 @@ class TInsert_albero : public TAlbero_bidir
|
|||||||
protected:
|
protected:
|
||||||
// @cmember Elimina il sottoalbero dei figli di un nodo
|
// @cmember Elimina il sottoalbero dei figli di un nodo
|
||||||
// @cmember che sta per essere eliminato da un struttura di tipo lista doppiamente lincata
|
// @cmember che sta per essere eliminato da un struttura di tipo lista doppiamente lincata
|
||||||
bool remove_subtree(const TRelana_id lastnode_id);
|
bool remove_subtree(const TNumeric_id lastnode_id);
|
||||||
// @cmember genera/setta il nuovo id
|
// @cmember genera/setta il nuovo id
|
||||||
TRelana_id &new_id(TRelana_id);
|
TNumeric_id &new_id(TNumeric_id);
|
||||||
|
|
||||||
void goto_node(const TRelana_id id)
|
void goto_node(const TNumeric_id id)
|
||||||
{
|
{
|
||||||
TToken_string key;
|
TToken_string key;
|
||||||
key.add(_currnode->get(ABRA_CODAN));
|
key.add(_currnode->get(ABRA_CODAN));
|
||||||
@ -241,9 +239,9 @@ protected:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// @cmember Inserisce un nodo in una struttura di tipo lista doppiamente lincata
|
// @cmember Inserisce un nodo in una struttura di tipo lista doppiamente lincata
|
||||||
bool insert_node(TRectype &node, const TRelana_id id_prec, const TRelana_id id_padre, TRelana_id id);
|
bool insert_node(TRectype &node, const TNumeric_id id_prec, const TNumeric_id id_padre, TNumeric_id id);
|
||||||
// @cmember Elimina un nodo da una struttura di tipo lista doppiamente lincata
|
// @cmember Elimina un nodo da una struttura di tipo lista doppiamente lincata
|
||||||
bool delete_node(const TRelana_id &id);
|
bool delete_node(const TNumeric_id &id);
|
||||||
// @cmember Lancia la rimozione di tutto l'albero
|
// @cmember Lancia la rimozione di tutto l'albero
|
||||||
bool delete_tree();
|
bool delete_tree();
|
||||||
// @cmember Lancia la rimozione di tutto l'albero
|
// @cmember Lancia la rimozione di tutto l'albero
|
||||||
@ -266,13 +264,13 @@ protected:
|
|||||||
|
|
||||||
// ***** gestione interfaccia Database/copia locale
|
// ***** gestione interfaccia Database/copia locale
|
||||||
// @cmember Estrae un nodo dall'albero
|
// @cmember Estrae un nodo dall'albero
|
||||||
TRectype extract_node(const TString &codtab,TRelana_id &id, TString& status);
|
TRectype extract_node(const TString &codtab,TNumeric_id &id, TString& status);
|
||||||
// @cmember Ritorna il numero di elementi dell'assoc_array status_node
|
// @cmember Ritorna il numero di elementi dell'assoc_array status_node
|
||||||
int status_node_items() { return _status_node.items();}
|
int status_node_items() { return _status_node.items();}
|
||||||
// @cmember Setta lo stato del nodo: valori ammessi = nodo <A>ggiunto, nodo <M>odificato, nodo <R>imosso
|
// @cmember Setta lo stato del nodo: valori ammessi = nodo <A>ggiunto, nodo <M>odificato, nodo <R>imosso
|
||||||
void set_status_node(const TRelana_id &id, const char *status);
|
void set_status_node(const TNumeric_id &id, const char *status);
|
||||||
// @cmember Ritorna lo stato di un nodo
|
// @cmember Ritorna lo stato di un nodo
|
||||||
const char* get_status_node(const TRelana_id &id);
|
const char* get_status_node(const TNumeric_id &id);
|
||||||
|
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TInsert_albero();
|
TInsert_albero();
|
||||||
@ -300,9 +298,9 @@ class TAnalisi_bil: public TRectype
|
|||||||
protected:
|
protected:
|
||||||
// @cmember Esegue una navigazione dell'albero di rel_voci e di rel_ana
|
// @cmember Esegue una navigazione dell'albero di rel_voci e di rel_ana
|
||||||
// @cmember parallelamente verificanto eventualmente delle inconsistenze
|
// @cmember parallelamente verificanto eventualmente delle inconsistenze
|
||||||
void naviga_relazioni(const TRelana_id & id_relana,const TRelana_id & prec,const TRelana_id & padre );
|
void naviga_relazioni(const TNumeric_id & id_relana,const TNumeric_id & prec,const TNumeric_id & padre );
|
||||||
// @cmember Sincronizza la copia locale basandosi su relvoci (per la struttura) e su relana (per le info aggiuntive)
|
// @cmember Sincronizza la copia locale basandosi su relvoci (per la struttura) e su relana (per le info aggiuntive)
|
||||||
TRectype * sincronizza_relana(const TRelana_id &begin_relana,TRelana_id &id_relana);
|
TRectype * sincronizza_relana(const TNumeric_id &begin_relana,TNumeric_id &id_relana);
|
||||||
// @cmember Esegue un lock di una struttura ad albero
|
// @cmember Esegue un lock di una struttura ad albero
|
||||||
bool lock_struttura();
|
bool lock_struttura();
|
||||||
// @cmember Esegue un unlock di una struttura ad albero
|
// @cmember Esegue un unlock di una struttura ad albero
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
#ifndef _ABLI09_H
|
||||||
|
#define _ABLI09_H
|
||||||
|
|
||||||
#ifndef _RECARRAY_H
|
#ifndef _RECARRAY_H
|
||||||
#include <recarray.h>
|
#include <recarray.h>
|
||||||
#endif
|
#endif
|
||||||
@ -22,3 +25,4 @@ public:
|
|||||||
TRWrecord_cache(const char* table, int key = 1, bool lock=FALSE);
|
TRWrecord_cache(const char* table, int key = 1, bool lock=FALSE);
|
||||||
virtual ~TRWrecord_cache() ;
|
virtual ~TRWrecord_cache() ;
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
//Nomi dei campi nel tracciato record di LF_VOCI
|
//Nomi dei campi nel tracciato record di LF_VOCI
|
||||||
#ifdef _ANALISI_H
|
#ifndef _ANALISI_H
|
||||||
|
#define _ANALISI_H
|
||||||
|
|
||||||
#define ABAN_CODAN "CODAN"
|
#define ABAN_CODAN "CODAN"
|
||||||
#define ABAN_DESCRIZ "DESCR"
|
#define ABAN_DESCRIZ "DESCR"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user