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:
parent
34df76ebf1
commit
eb24e03b95
37
ba/ba0.cpp
37
ba/ba0.cpp
@ -32,7 +32,6 @@ public:
|
|||||||
virtual ~TPicture_mask() {}
|
virtual ~TPicture_mask() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
TPicture_mask::TPicture_mask(const char* name, int dx, int dy, TImage& image)
|
TPicture_mask::TPicture_mask(const char* name, int dx, int dy, TImage& image)
|
||||||
: TMask(name, 1, dx, dy), _image(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
|
if (get_firm() == 0 && module.compare("cg", 2, TRUE) == 0) // Chiede ditta se necessario
|
||||||
set_firm();
|
set_firm();
|
||||||
prefix().set(NULL); // Chiude prefix
|
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);
|
TExternal_app a(option);
|
||||||
|
|
||||||
a.run();
|
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
|
prefix().set("DEF"); // Aggiorna prefix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -578,10 +578,10 @@ void TManutenzione_app::update_dir()
|
|||||||
const int items = (int)d.eod();
|
const int items = (int)d.eod();
|
||||||
|
|
||||||
s = "Aggiornamento direttorio ";
|
s = "Aggiornamento direttorio ";
|
||||||
if (is_com) s << "comune";
|
if (is_com) s << "comune.";
|
||||||
else s << " della ditta " << atol (pref) <<".";
|
else s << "della ditta " << atol (pref) <<".";
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN
|
||||||
s << " Memoria libera: " << (long)GetFreeSpace(0) << " bytes.";
|
s << " Memoria libera: " << (long)GetFreeSpace(0)/1024 << " Kbytes.";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
|
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
|
||||||
@ -799,11 +799,11 @@ void TManutenzione_app::convert_dir()
|
|||||||
|
|
||||||
TString s(256);
|
TString s(256);
|
||||||
s = "Aggiornamento archivi ";
|
s = "Aggiornamento archivi ";
|
||||||
if (is_com) s << "comuni";
|
if (is_com) s << "comuni.";
|
||||||
else s << " della ditta " << atol (pref) << ".";
|
else s << "della ditta " << atol (pref) << ".";
|
||||||
|
|
||||||
#if XVT_OS == XVT_OS_WIN
|
#if XVT_OS == XVT_OS_WIN
|
||||||
s << " Memoria libera: " << (long)GetFreeSpace(0) << " bytes.";
|
s << " Memoria libera: " << (long)GetFreeSpace(0)/1024 << " Kbytes.";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
|
TProgind p(items ? items : 1, s, FALSE, TRUE, 70);
|
||||||
@ -833,6 +833,19 @@ void TManutenzione_app::convert_dir()
|
|||||||
TSystemisamfile f(i);
|
TSystemisamfile f(i);
|
||||||
|
|
||||||
f.update(r);
|
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);
|
d.get(i, _nolock, _nordir, _sysdirop);
|
||||||
bool to_create = (is_com ? d.is_com() : d.is_firm());
|
bool to_create = (is_com ? d.is_com() : d.is_firm());
|
||||||
|
|
||||||
@ -924,20 +937,21 @@ void TManutenzione_app::update()
|
|||||||
|
|
||||||
TString80 s("Conversione archivi ditte.");
|
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);
|
TProgind p(ditte.items() ? ditte.items() : 1, s, TRUE, TRUE, 70);
|
||||||
|
|
||||||
p.setstatus(1);
|
p.setstatus(1);
|
||||||
|
TString mxs;
|
||||||
|
|
||||||
for (ditte.first(); !ditte.eof(); ditte.next())
|
for (ditte.first(); !ditte.eof(); ditte.next())
|
||||||
{
|
{
|
||||||
p.addstatus(1);
|
|
||||||
const long codditta = ditte.get_long("CODDITTA");
|
|
||||||
const TRecnotype rec = ditte.recno();
|
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))
|
if (codditta > _history_firm && prefix().exist(codditta))
|
||||||
{
|
{
|
||||||
ditte.close();
|
ditte.close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user