-corretta determinazione della lunghezza del campo "Tipo record"
-protetti i metodi autoload & auitosave su _current con un CHECK -default file == main file della relazione sui Fieldref git-svn-id: svn://10.65.10.50/trunk@5488 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
b54e001da6
commit
b08a45ee83
@ -235,10 +235,14 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section)
|
||||
}
|
||||
if (lavoro == "FIE")
|
||||
{
|
||||
TFieldref field;
|
||||
field = obj;
|
||||
tc.set_field(field);
|
||||
continue;
|
||||
TFieldref field;
|
||||
field = obj;
|
||||
if (field.file()==0 && tmprel )
|
||||
{
|
||||
field.set_file(tmprel->lfile().num());
|
||||
}
|
||||
tc.set_field(field);
|
||||
continue;
|
||||
}
|
||||
if (lavoro == "FTY") // field type
|
||||
{
|
||||
@ -259,8 +263,6 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section)
|
||||
int len = atoi(obj);
|
||||
if (tc.length() <= 0 && len >= 0 && tc.length() != len)
|
||||
tc.set_length(len);
|
||||
if (_fixedlen && _typelen < 0 && n == _typefield)
|
||||
_typelen = len;
|
||||
continue;
|
||||
}
|
||||
if (lavoro == "DEC")
|
||||
@ -303,6 +305,9 @@ void TFile_text::set_rec_parm(TConfig& config, const char* section)
|
||||
tc.set_message(obj);
|
||||
continue;
|
||||
}
|
||||
if (_fixedlen && _typelen < 0 && n == _typefield)
|
||||
_typelen = tc.length();
|
||||
|
||||
}
|
||||
tr->set_relation(tmprel);
|
||||
//aggiungo il tracciato record all'assoc_array dei tracciati record
|
||||
@ -497,6 +502,12 @@ void TFile_text::autoload(TRecord_text& rec, TCursor& cur , const TString* tipo)
|
||||
_autoload(rec,cur,tr);
|
||||
}
|
||||
|
||||
void TFile_text::autoload(TCursor& cur, const TString* tipo)
|
||||
{
|
||||
CHECK(_current,"Record corrente non settato");
|
||||
autoload(*_current, cur, tipo);
|
||||
}
|
||||
|
||||
//Carica tutti i dati nel tracciato record (valido anche per header e footer) nel record_text
|
||||
void TFile_text::_autoload(TRecord_text& rec, TCursor& cur , TTracciato_record& tr )
|
||||
{
|
||||
@ -541,6 +552,12 @@ int TFile_text::autosave(TRelation& rel, const TRecord_text& rec)
|
||||
return _autosave(rel,rec, tr);
|
||||
}
|
||||
|
||||
int TFile_text::autosave(int mainfile)
|
||||
{
|
||||
CHECK(_current,"Record corrente non settato");
|
||||
return autosave(mainfile,*_current);
|
||||
}
|
||||
|
||||
//Carico la relazione con i dati del record text
|
||||
int TFile_text::_autosave(TRelation& rel, const TRecord_text& rec, TTracciato_record& tr )
|
||||
{
|
||||
@ -701,7 +718,7 @@ TString& TFile_text::format_textfield(const TTracciato_campo& tc, TString& campo
|
||||
//Formatta la stringa in base al field del file isam
|
||||
TString& TFile_text::format_field(const TTracciato_campo& tc, TString& campo)
|
||||
{
|
||||
const TRectype record(tc.field().file());
|
||||
const TRectype record(tc.field().file());
|
||||
|
||||
int length = tc.field().len(record);
|
||||
if (!fpicture(tc).blank())
|
||||
@ -751,7 +768,7 @@ int TFile_text::open(char mode)
|
||||
|
||||
int TFile_text::open(const char* name, char mode)
|
||||
{
|
||||
set_name(name);
|
||||
set_name(name);
|
||||
return open(mode);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user