Patch level : 12.0 604
Files correlati : fp Commento : Aggiunte metodi pericolosi per gestire il database MSSQL
This commit is contained in:
parent
f03f6c3143
commit
aeea835c8e
@ -2,6 +2,7 @@
|
||||
#include <automask.h>
|
||||
#include <sheet.h>
|
||||
#include <utility.h>
|
||||
#include <urldefid.h> // ID Bottoni
|
||||
|
||||
#include "fp0.h"
|
||||
#include "fp0100a.h"
|
||||
@ -9,11 +10,14 @@
|
||||
#include "recset.h"
|
||||
#include "progind.h"
|
||||
#include "../ve/velib.h"
|
||||
#include "fplib01.h"
|
||||
|
||||
class TParametri_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
void tipi_import();
|
||||
static TMask& get_tmp_msk(const char* title);
|
||||
virtual bool on_key(KEY key);
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
|
||||
public:
|
||||
@ -28,6 +32,7 @@ TParametri_mask::TParametri_mask(const char * n) : TAutomask(n)
|
||||
set(F_PASSWORD, decode(ini_get_string(CONFIG_DITTA, "fp", "psw") ));
|
||||
set(F_FLDDEST, ini_get_string(CONFIG_DITTA, "fp", "flddest"));
|
||||
set(F_FLDUSRDEST, ini_get_string(CONFIG_DITTA, "fp", "fldusrdest"));
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -60,6 +65,45 @@ void TParametri_mask::tipi_import()
|
||||
}
|
||||
}
|
||||
|
||||
TMask & TParametri_mask::get_tmp_msk(const char * title)
|
||||
{
|
||||
static TMask* m;
|
||||
// Cancello la maschera se esiste
|
||||
delete m;
|
||||
m = new TMask(title, 1, 30, 5);
|
||||
m->add_button_tool(DLG_OK, "~Conferma", TOOL_OK);
|
||||
m->add_button_tool(DLG_CANCEL, "Annulla", TOOL_CANCEL);
|
||||
return *m;
|
||||
}
|
||||
|
||||
bool TParametri_mask::on_key(KEY key)
|
||||
{
|
||||
switch(key)
|
||||
{
|
||||
case K_SHIFT + K_F12:
|
||||
{
|
||||
TMask& m = get_tmp_msk("Password");
|
||||
m.add_string(101, 0, "Password ", 1, 1, 15, "*");
|
||||
m.field(101).check_type(CHECK_REQUIRED);
|
||||
while(m.run() == K_ENTER)
|
||||
{
|
||||
if (m.get(101) == "sirioFATT99") // Hardcode password are the best!
|
||||
{
|
||||
for (int i = F_SETPATCH; i <= F_REBORNDB; i++)
|
||||
enable(i);
|
||||
break;
|
||||
}
|
||||
else
|
||||
error_box("Password errata");
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TParametri_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
switch (o.dlg())
|
||||
@ -67,6 +111,56 @@ bool TParametri_mask::on_field_event(TOperable_field& o, TField_event e, long jo
|
||||
case DLG_ELABORA:
|
||||
if (e == fe_button)
|
||||
tipi_import();
|
||||
break;
|
||||
case F_SETPATCH:
|
||||
{
|
||||
TMask & m = get_tmp_msk("Livello patch");
|
||||
m.add_string(101, 0, "Versione ", 1, 1, 5, "");
|
||||
m.field(101).check_type(CHECK_REQUIRED);
|
||||
if (m.run() == K_ENTER)
|
||||
{
|
||||
TLocalisamfile tabmod(LF_TABMOD);
|
||||
tabmod.put("MOD", "FP");
|
||||
tabmod.put("COD", "SQL");
|
||||
tabmod.put("CODTAB", "VERSION");
|
||||
tabmod.put("S0", m.get(101));
|
||||
if (tabmod.write_rewrite() == NOERR)
|
||||
message_box("Versione impostata!");
|
||||
else
|
||||
error_box("Errore durante la scrittura del DB Campo");
|
||||
}
|
||||
break;
|
||||
}
|
||||
case F_ENPTYTABLE:
|
||||
if (yesno_box("Sei sicuro di voler svuotare tutte le tabelle del database? Questa procedura NON É REVERSIBILE"))
|
||||
{
|
||||
db().sq_set_exec("EXEC sp_MSforeachtable @command1 = 'TRUNCATE TABLE ? '");
|
||||
db().sq_commit();
|
||||
message_box("Procedura terminata");
|
||||
}
|
||||
break;
|
||||
case F_DROPTABLE:
|
||||
if (yesno_box("Sei sicuro di voler cancellare tutte le tabelle del database? Questa procedura NON É REVERSIBILE"))
|
||||
{
|
||||
db().sq_set_exec("EXEC sp_MSforeachtable @command1 = 'DROP TABLE ?'");
|
||||
db().sq_commit();
|
||||
message_box("Procedura terminata");
|
||||
}
|
||||
break;
|
||||
case F_REBORNDB:
|
||||
if (yesno_box("Sei sicuro di voler ricreare tutte le tabelle del database? Questa procedura NON É REVERSIBILE"))
|
||||
{
|
||||
db().sq_set_exec("EXEC sp_MSforeachtable @command1 = 'DROP TABLE ?'");
|
||||
TLocalisamfile tabmod(LF_TABMOD);
|
||||
tabmod.put("MOD", "FP");
|
||||
tabmod.put("COD", "SQL");
|
||||
tabmod.put("CODTAB", "VERSION");
|
||||
tabmod.remove();
|
||||
check_tables();
|
||||
db().sq_commit();
|
||||
message_box("Procedura terminata");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -3,4 +3,9 @@
|
||||
#define F_USER 103
|
||||
#define F_PASSWORD 104
|
||||
#define F_FLDDEST 105
|
||||
#define F_FLDUSRDEST 106
|
||||
#define F_FLDUSRDEST 106
|
||||
|
||||
#define F_SETPATCH 201
|
||||
#define F_ENPTYTABLE 202
|
||||
#define F_DROPTABLE 203
|
||||
#define F_REBORNDB 204
|
@ -7,6 +7,7 @@ BUTTON DLG_ELABORA 2 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Imp. Tipi Doc"
|
||||
PICTURE TOOL_ELABORA
|
||||
FLAGS "HD"
|
||||
END
|
||||
ENDPAGE
|
||||
|
||||
@ -46,18 +47,48 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
STRING F_FLDDEST 250 50
|
||||
STRING F_FLDDEST 300 50
|
||||
BEGIN
|
||||
PROMPT 2 6 "Destinazione Server "
|
||||
FLAGS ""
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "M"
|
||||
END
|
||||
|
||||
STRING F_FLDUSRDEST 250 50
|
||||
STRING F_FLDUSRDEST 300 50
|
||||
BEGIN
|
||||
PROMPT 2 7 "Destinazione User "
|
||||
FLAGS ""
|
||||
DSELECT
|
||||
CHECKTYPE REQUIRED
|
||||
FLAGS "M"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
PAGE "Assistenza FP" 0 2 0 0
|
||||
|
||||
BUTTON F_SETPATCH 15 2
|
||||
BEGIN
|
||||
PROMPT 1 1 "Imposta livello patch"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON F_ENPTYTABLE 15 2
|
||||
BEGIN
|
||||
PROMPT 20 1 "Svuota Tabelle"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON F_DROPTABLE 15 2
|
||||
BEGIN
|
||||
PROMPT 40 1 "Cancella Tabelle"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
BUTTON F_REBORNDB 15 2
|
||||
BEGIN
|
||||
PROMPT 60 1 "Ricrea DB"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
Loading…
x
Reference in New Issue
Block a user