Modifiche effettuate per far ripartire automaticamente una conversione

interrotta per svariate cause. (GPF, Insufficient memory ecc.).


git-svn-id: svn://10.65.10.50/trunk@3002 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-06-17 09:27:56 +00:00
parent 34df76ebf1
commit eb24e03b95
2 changed files with 63 additions and 16 deletions

View File

@ -32,7 +32,6 @@ public:
virtual ~TPicture_mask() {}
};
TPicture_mask::TPicture_mask(const char* name, int dx, int dy, TImage& image)
: TMask(name, 1, dx, dy), _image(image)
{
@ -621,9 +620,43 @@ bool TMenu_application::menu(MENU_TAG)
if (get_firm() == 0 && module.compare("cg", 2, TRUE) == 0) // Chiede ditta se necessario
set_firm();
prefix().set(NULL); // Chiude prefix
TFilename opt_cmd(option);
#if XVT_OS == XVT_OS_WIN
opt_cmd.lower();
#endif
bool maintenance_app = (opt_cmd == "ba1 -0" || opt_cmd == "ba1");
TExternal_app a(option);
a.run();
if (maintenance_app)
{
FILE* fp;
char line1[16],line2[16];
if (opt_cmd == "ba1") opt_cmd << " -0";
opt_cmd << " C";
while (fexist("conv.his"))
{
fp = fopen("conv.his","r");
fgets(line1,15,fp);
fclose(fp);
// Ora aspetta...
time_t old_time ;
time( &old_time) ;
while ( time( (time_t *) 0 ) <= old_time ) do_events();
TExternal_app auto_conv(opt_cmd);
auto_conv.run();
fp = fopen("conv.his","r");
if (fp != NULL)
{
fgets(line2,15,fp);
fclose(fp);
}
else strcpy(line2,"");
if (strcmp(line1,line2) == 0)
if (!yesno_box("La conversione non sembra procedere. Continuo?"))
break;
}
}
prefix().set("DEF"); // Aggiorna prefix
}
}

View File

@ -578,10 +578,10 @@ void TManutenzione_app::update_dir()
const int items = (int)d.eod();
s = "Aggiornamento direttorio ";
if (is_com) s << "comune";
else s << " della ditta " << atol (pref) <<".";
if (is_com) s << "comune.";
else s << "della ditta " << atol (pref) <<".";
#if XVT_OS == XVT_OS_WIN
s << " Memoria libera: " << (long)GetFreeSpace(0) << " bytes.";
s << " Memoria libera: " << (long)GetFreeSpace(0)/1024 << " Kbytes.";
#endif
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
@ -799,11 +799,11 @@ void TManutenzione_app::convert_dir()
TString s(256);
s = "Aggiornamento archivi ";
if (is_com) s << "comuni";
else s << " della ditta " << atol (pref) << ".";
if (is_com) s << "comuni.";
else s << "della ditta " << atol (pref) << ".";
#if XVT_OS == XVT_OS_WIN
s << " Memoria libera: " << (long)GetFreeSpace(0) << " bytes.";
s << " Memoria libera: " << (long)GetFreeSpace(0)/1024 << " Kbytes.";
#endif
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
@ -833,6 +833,19 @@ void TManutenzione_app::convert_dir()
TSystemisamfile f(i);
f.update(r);
if (f.status() == 8) // cio' significa che e' accaduto quasi l'irreparabile...
{
{
TLocalisamfile u(LF_USER);
u.zero(); u.put("USERNAME","PRASSI");
if (u.read() == NOERR)
{
u.zero("AUTSTR");
u.rewrite();
}
}
stop_run();
}
d.get(i, _nolock, _nordir, _sysdirop);
bool to_create = (is_com ? d.is_com() : d.is_firm());
@ -924,20 +937,21 @@ void TManutenzione_app::update()
TString80 s("Conversione archivi ditte.");
#if XVT_OS == XVT_OS_WIN
s << " Memoria libera: " << (long)GetFreeSpace(0) << " bytes.";
#endif
TProgind p(ditte.items() ? ditte.items() : 1, s, TRUE, TRUE, 70);
p.setstatus(1);
TString mxs;
for (ditte.first(); !ditte.eof(); ditte.next())
{
p.addstatus(1);
const long codditta = ditte.get_long("CODDITTA");
const TRecnotype rec = ditte.recno();
const long codditta = ditte.get_long("CODDITTA");
mxs = s;
#if XVT_OS == XVT_OS_WIN
mxs << " Ditta " << codditta << ". Memoria libera: " << (long)GetFreeSpace(0)/1024 << " Kbytes.";
#endif
p.addstatus(1);
p.set_text(mxs);
if (codditta > _history_firm && prefix().exist(codditta))
{
ditte.close();