Patch level : 12.0 no-patch
Files correlati : ps Commento : Modifiche Diana 2000: - Aggiunta modalità auto senza finestra - Aggiunto lancio eseguibile post-esportazione - Aggiunto prefisso tabelle
This commit is contained in:
parent
a150b1039c
commit
3e6707c33e
@ -125,6 +125,7 @@ void TDianaExport_mask::save_all() const
|
||||
ini_set_string(CONFIG_DITTA, "ps1004", "db", get(F_DATABASE));
|
||||
ini_set_string(CONFIG_DITTA, "ps1004", "usr", get(F_USER));
|
||||
ini_set_string(CONFIG_DITTA, "ps1004", "psw", encode(get(F_PASSWORD)));
|
||||
ini_set_string(CONFIG_DITTA, "ps1004", "ext", get(F_EXTERNAL));
|
||||
}
|
||||
|
||||
void TDianaExport_mask::load_all()
|
||||
@ -133,6 +134,7 @@ void TDianaExport_mask::load_all()
|
||||
set(F_DATABASE, ini_get_string(CONFIG_DITTA, "ps1004", "db"));
|
||||
set(F_USER, ini_get_string(CONFIG_DITTA, "ps1004", "usr"));
|
||||
set(F_PASSWORD, decode(ini_get_string(CONFIG_DITTA, "ps1004", "psw")));
|
||||
set(F_EXTERNAL, ini_get_string(CONFIG_DITTA, "ps1004", "ext"));
|
||||
}
|
||||
|
||||
|
||||
@ -148,8 +150,10 @@ class TDianaExport_app : public TSkeleton_application
|
||||
bool create_table(const int logicnum);
|
||||
bool deploy_data(const int logicnum);
|
||||
inline bool rko_outta_nowhere(const int logicnum);
|
||||
bool launch_ext();
|
||||
public:
|
||||
virtual bool create();
|
||||
|
||||
virtual void main_loop();
|
||||
TDianaExport_app() : _visual(false) {}
|
||||
};
|
||||
@ -176,7 +180,7 @@ bool TDianaExport_app::create_table(const int logicnum)
|
||||
const RecDes& rd = prefix().get_recdes(logicnum);
|
||||
|
||||
// Create new table
|
||||
TString sql; sql.cut(0) << "CREATE TABLE " << table << "\n(";
|
||||
TString sql; sql.cut(0) << "CREATE TABLE CAMPO_" << table << "\n(";
|
||||
for (int i = 0; i < rd.NFields; i++)
|
||||
{
|
||||
if (i > 0) sql << ',';
|
||||
@ -218,7 +222,7 @@ bool TDianaExport_app::deploy_data(const int logicnum)
|
||||
{
|
||||
if (_visual && !p.add_status())
|
||||
return false;
|
||||
queryF.cut(0) << "INSERT INTO [" << logic2table(logicnum) << "] ("; // Tolgo il simbolo iniziale
|
||||
queryF.cut(0) << "INSERT INTO [CAMPO_" << logic2table(logicnum) << "] ("; // Tolgo il simbolo iniziale
|
||||
queryV.cut(0) << "(";
|
||||
for (int k = 0; k < rd.NFields; k++)
|
||||
{
|
||||
@ -279,7 +283,18 @@ bool TDianaExport_app::deploy_data(const int logicnum)
|
||||
|
||||
bool TDianaExport_app::rko_outta_nowhere(const int logicnum)
|
||||
{
|
||||
diana_db().sq_set_exec(TString().cut(0) << "DROP TABLE " << logic2table(logicnum) << ';') && diana_db().sq_commit();
|
||||
diana_db().sq_set_exec(TString().cut(0) << "DROP TABLE CAMPO_" << logic2table(logicnum) << ';') && diana_db().sq_commit();
|
||||
return true;
|
||||
}
|
||||
|
||||
bool TDianaExport_app::launch_ext()
|
||||
{
|
||||
TString ext = ini_get_string(CONFIG_DITTA, "ps1004", "ext");
|
||||
if(ext.full())
|
||||
{
|
||||
TExternal_app e(ext);
|
||||
e.run(true);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -292,28 +307,38 @@ bool TDianaExport_app::create()
|
||||
|
||||
void TDianaExport_app::main_loop()
|
||||
{
|
||||
TDianaExport_mask msk;
|
||||
while (msk.run() == K_ENTER)
|
||||
{
|
||||
bool connected = false;
|
||||
_visual = true;
|
||||
const TFixed_string arg = argv(2);
|
||||
if(arg.starts_with("-a") || arg.starts_with("-A"))
|
||||
{
|
||||
const WINDOW task = TASK_WIN;
|
||||
xvt_vobj_set_visible(task, FALSE);
|
||||
export_all() && launch_ext();
|
||||
}
|
||||
else
|
||||
{
|
||||
TDianaExport_mask msk;
|
||||
while (msk.run() == K_ENTER)
|
||||
{
|
||||
TString ad; ad << msk.get(F_INDIRIZZO) << "@" << msk.get(F_DATABASE);
|
||||
bool connected = false;
|
||||
_visual = true;
|
||||
{
|
||||
TString ad; ad << msk.get(F_INDIRIZZO) << "@" << msk.get(F_DATABASE);
|
||||
|
||||
SSimple_query s(ad, msk.get(F_USER), msk.get(F_PASSWORD), TSDB_MSSQL);
|
||||
connected = s.sq_is_connect();
|
||||
if (connected)
|
||||
{
|
||||
msk.save_all();
|
||||
message_box("Dati salvati correttamente!");
|
||||
}
|
||||
else
|
||||
{
|
||||
error_box("Impossibile stabilire una connessione al database");
|
||||
SSimple_query s(ad, msk.get(F_USER), msk.get(F_PASSWORD), TSDB_MSSQL);
|
||||
connected = s.sq_is_connect();
|
||||
if (connected)
|
||||
{
|
||||
msk.save_all();
|
||||
message_box("Dati salvati correttamente!");
|
||||
}
|
||||
else
|
||||
{
|
||||
error_box("Impossibile stabilire una connessione al database");
|
||||
}
|
||||
}
|
||||
connected && yesno_box("Vuoi eseguire l'esportazione dei dati?") && export_all() && launch_ext();
|
||||
}
|
||||
connected && yesno_box("Vuoi eseguire l'esportazione dei dati?") && export_all();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#define F_INDIRIZZO 101
|
||||
#define F_DATABASE 102
|
||||
#define F_USER 103
|
||||
#define F_PASSWORD 104
|
||||
#define F_PASSWORD 104
|
||||
#define F_EXTERNAL 105
|
@ -40,4 +40,9 @@ BEGIN
|
||||
CHECKTYPE REQUIRED
|
||||
END
|
||||
|
||||
|
||||
STRING F_EXTERNAL 255 50
|
||||
BEGIN
|
||||
PROMPT 2 7 "Programma esterno"
|
||||
END
|
||||
ENDPAGE
|
Loading…
x
Reference in New Issue
Block a user