Patch level : 12.0 no-patch

Files correlati     : f9.exe, f90100.sql
Commento            :
- Corretto check tables se esistono gia' dato che c'era gia' un aggiornamento delle tabelle dell'F9 da parte dell'FP
This commit is contained in:
Simone Palacino 2019-09-16 18:10:27 +02:00
parent d471675612
commit dee23524bc
3 changed files with 173 additions and 155 deletions

View File

@ -15,13 +15,14 @@
/* /*
* - Per aggiornare le tabelle f9 aggiungere nella cartella "sql\f9\" il file sql cosi' fatto: * - Per aggiornare le tabelle f9 aggiungere nella cartella "sql\f9\" il file sql cosi' fatto:
* f9xxxx.sql dove xxxx e' il numero zero-filled della versione delle tabelle, che INCREMENTA DI DUE COME CON LE PATCH, IMPORTANTE! * f9xxxx.sql dove xxxx e' il numero zero-filled della versione delle tabelle, che INCREMENTA DI DUE COME CON LE PATCH, IMPORTANTE!
* - Aggiornare la definizione qui sotto di F9_SQL_VERSION mettendo la nuova versione. * - Aggiornare la definizione qui sotto di SQL_VERSION mettendo la nuova versione.
* - Fare patch del file sql e dell'eseguibile f90.exe * - Fare patch del file sql e dell'eseguibile f90.exe
* - Lanciare il programma per eseguire l'aggiornamento. * - Lanciare il programma per eseguire l'aggiornamento.
*/ */
#define TABMOD_SQL_VERSION "S0" #define TABMOD_TABVER "S0" // Campo per la memorizzazione della versione attuale delle tabelle
#define F9_SQL_VERSION 100 // Utilizzo questo per controllare la versione attuale delle tabelle e nel caso aggiornarle #define TAB_BASE_VERSION 100 // Versione base delle tabelle
#define SQL_VERSION 100 // Utilizzo questo per controllare la versione attuale delle tabelle e nel caso aggiornarle
SSimple_query& db() SSimple_query& db()
{ {
@ -966,8 +967,8 @@ bool TF9_app::is_doc_xml(const TLocalisamfile& mov)
if(chiave_paf(doc, hfatt, bfatt)) if(chiave_paf(doc, hfatt, bfatt))
{ {
query << "SELECT * FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';"; query << "SELECT * FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';";
fp_db().sq_set_exec(query); db().sq_set_exec(query);
return fp_db().sq_items() > 0; return db().sq_items() > 0;
} }
return false; return false;
} }
@ -1245,7 +1246,8 @@ void pulisci_mov()
void TF9_app::main_loop() void TF9_app::main_loop()
{ {
check_table(); if(!check_table())
fatal_box("Controllo tabelle modulo fallito.");
#ifdef DBG // Per sicurezza che non venga inserito in release #ifdef DBG // Per sicurezza che non venga inserito in release
//pulisci_mov(); //pulisci_mov();
#endif #endif
@ -1270,7 +1272,7 @@ bool TF9_app::create_tables() const
tabmod.put("CODTAB", "VERSION"); tabmod.put("CODTAB", "VERSION");
char ver[5] = "0000"; char ver[5] = "0000";
sprintf_s(ver, 5, "%04d", 100); sprintf_s(ver, 5, "%04d", 100);
tabmod.put(TABMOD_SQL_VERSION, ver); tabmod.put(TABMOD_TABVER, ver);
tabmod.write(); // todo: controllare tabmod.write(); // todo: controllare
ok &= tabmod.rewrite() == NOERR; // todo: controllare ok &= tabmod.rewrite() == NOERR; // todo: controllare
return ok; return ok;
@ -1297,15 +1299,16 @@ bool TF9_app::aggiorna_tab_f9(int version) const
string sql; string sql;
char ver[5] = "0000"; char ver[5] = "0000";
sprintf_s(ver, 5, "%04d", version); sprintf_s(ver, 5, "%04d", version);
file << "sql\\f90\\f9" << ver << ".sql"; TString name; name << "f9" << ver << ".sql";
file << "sql\\f90\\" << name;
std::ifstream fin; std::ifstream fin;
fin.open(file); fin.open(file);
if(ok &= fin.is_open()) if(ok &= fin.is_open())
{ {
while (!fin.eof()) while (!fin.eof() && ok)
{ {
std::string appo_line; // todo: Controllare che si svuota ad ogni ciclo o aggiungere un erase std::string appo_line;
std::getline(fin, appo_line); std::getline(fin, appo_line);
if (appo_line[0] == '-' && appo_line[1] == '-') // Se è una riga di commento la salto if (appo_line[0] == '-' && appo_line[1] == '-') // Se è una riga di commento la salto
continue; continue;
@ -1315,12 +1318,17 @@ bool TF9_app::aggiorna_tab_f9(int version) const
if(end != int(std::string::npos)) if(end != int(std::string::npos))
{ {
TString query; query << sql.c_str(); TString query; query << sql.c_str();
ok &= fp_db().sq_set_exec(query); ok &= db().sq_set_exec(query);
ok &= fp_db().sq_commit(); ok &= db().sq_commit();
sql.erase(); sql.erase();
} }
} }
} }
else
{
TString msg; msg << "Impossibile trovare il file di aggiornamento tabelle: " << file;
error_box(msg);
}
return ok; return ok;
} }
@ -1331,51 +1339,47 @@ bool TF9_app::check_tab_version() const
tabmod.put("MOD", "F9"); tabmod.put("MOD", "F9");
tabmod.put("COD", "SQL"); tabmod.put("COD", "SQL");
tabmod.put("CODTAB", "VERSION"); tabmod.put("CODTAB", "VERSION");
const bool exists = tabmod.read() == NOERR;
if(ok &= tabmod.read() == NOERR) int version = exists ? real(tabmod.get(TABMOD_TABVER)).integer() : TAB_BASE_VERSION - 2;
if(version < SQL_VERSION) // Controllo la versione
{ {
int version = real(tabmod.get(TABMOD_SQL_VERSION)).integer(); for(; version < SQL_VERSION; version += 2) // Effettuo le modifiche per ogni avanzamento di versione
if(version < F9_SQL_VERSION) // Controllo la versione
{
for(; version <= F9_SQL_VERSION; version += 2) // Effettuo le modifiche per ogni avanzamento di versione
{ {
if (ok &= aggiorna_tab_f9(version + 2)) if (ok &= aggiorna_tab_f9(version + 2))
{ {
char ver[5] = "0000"; char ver[5] = "0000";
sprintf_s(ver, 5, "%04d", version + 2); sprintf_s(ver, 5, "%04d", version + 2);
tabmod.put(TABMOD_SQL_VERSION, ver); // Avanzo il contatore della versione in TABMOD tabmod.put(TABMOD_TABVER, ver); // Avanzo il contatore della versione in TABMOD
if (!exists)
{
tabmod.zero();
tabmod.put("MOD", "F9");
tabmod.put("COD", "SQL");
tabmod.put("CODTAB", "VERSION");
tabmod.put(TABMOD_TABVER, ver); // Avanzo il contatore della versione in TABMOD
tabmod.write();
}
tabmod.rewrite(); tabmod.rewrite();
} }
else else
break; break;
} }
} }
}
return ok; return ok;
} }
bool TF9_app::check_table() bool TF9_app::check_table() const
{ {
if (!check_tabelle_f9())
{
TString msg;
std::ofstream fout;
fout.open("f9checktaberr.txt");
fout << fp_db().sq_get_text_error(false) << std::endl;
fout.close();
msg << "Errore controllo database F9: creazione tabelle.\n" << fp_db().sq_get_text_error(false);
fatal_box(msg);
return false;
}
// Se il check tabelle va a buon fine controllo la versione delle tabelle
if (!check_tab_version()) if (!check_tab_version())
{ {
TString msg; TString msg;
std::ofstream fout; std::ofstream fout;
fout.open("f9checktaberr.txt"); fout.open("f9checktaberr.txt");
fout << fp_db().sq_get_text_error(false) << std::endl; fout << db().sq_get_text_error(false) << std::endl;
fout.close(); fout.close();
msg << "Errore controllo database F9: aggiornamento tabelle.\n" << fp_db().sq_get_text_error(false); msg << "! Errore controllo database F9: creazione/aggiornamento tabelle.\n" << db().sq_get_text_error() << "\n" << db().sq_get_string_error();
fatal_box(msg); fatal_box(msg);
return false; return false;
} }

View File

@ -142,7 +142,7 @@ public:
bool check_tabelle_f9(); // Controllo esistenza delle tabelle e in caso le crea bool check_tabelle_f9(); // Controllo esistenza delle tabelle e in caso le crea
bool aggiorna_tab_f9(int version) const; // Aggiorna modifiche alle tabelle F9 come descritto in cima al file .cpp bool aggiorna_tab_f9(int version) const; // Aggiorna modifiche alle tabelle F9 come descritto in cima al file .cpp
bool check_tab_version() const; // Controllo della versione e in caso aggiorna le tabelle bool check_tab_version() const; // Controllo della versione e in caso aggiorna le tabelle
bool check_table(); bool check_table() const;
TF9_app() : _estr_msk(nullptr), _msk(nullptr), _mov_escl("", '|'), _tot_movs(0), _ambiente(""), _addr_doc(""), TF9_app() : _estr_msk(nullptr), _msk(nullptr), _mov_escl("", '|'), _tot_movs(0), _ambiente(""), _addr_doc(""),
_last_estr_p(0), _last_estr_d(0), _tipodoc_escl('A'), _flagprov_escl('P') { } _last_estr_p(0), _last_estr_d(0), _tipodoc_escl('A'), _flagprov_escl('P') { }
}; };

View File

@ -1,108 +1,121 @@
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9DRD00K')
CREATE TABLE F9DRD00K ( CREATE TABLE F9DRD00K (
F9RCSOC CHAR(10) NOT NULL DEFAULT '' , F9RCSOC CHAR(10) NOT NULL DEFAULT '',
F9RIDES CHAR(18) NOT NULL DEFAULT '' , F9RIDES CHAR(18) NOT NULL DEFAULT '',
F9RFPDE CHAR(1) NOT NULL DEFAULT '' , F9RFPDE CHAR(1) NOT NULL DEFAULT '',
F9RDDES CHAR(256) NOT NULL DEFAULT '' , F9RDDES CHAR(256) NOT NULL DEFAULT '',
F9RFTDC CHAR(1) NOT NULL DEFAULT '' , F9RFTDC CHAR(1) NOT NULL DEFAULT '',
F9RUESD DATE NOT NULL DEFAULT getdate() , F9RUESD DATE NOT NULL DEFAULT getdate(),
F9RUESA DATE NOT NULL DEFAULT getdate() , F9RUESA DATE NOT NULL DEFAULT getdate(),
F9RUTEE CHAR(10) NOT NULL DEFAULT '' , F9RUTEE CHAR(10) NOT NULL DEFAULT '',
F9RUHES DATETIME NOT NULL DEFAULT getdate() , F9RUHES DATETIME NOT NULL DEFAULT getdate(),
F9RIDAS CHAR(2) NOT NULL DEFAULT '' , F9RIDAS CHAR(2) NOT NULL DEFAULT '',
F9RIDWA CHAR(2) NOT NULL DEFAULT '' , F9RIDWA CHAR(2) NOT NULL DEFAULT '',
F9RDSIW CHAR(256) NOT NULL DEFAULT '' , F9RDSIW CHAR(256) NOT NULL DEFAULT '',
F9RUHIM DATETIME NOT NULL DEFAULT getdate() , F9RUHIM DATETIME NOT NULL DEFAULT getdate(),
F9RIISO CHAR(1) NOT NULL DEFAULT '' , F9RIISO CHAR(1) NOT NULL DEFAULT '',
F9RUHIS DATETIME NOT NULL DEFAULT getdate() , F9RUHIS DATETIME NOT NULL DEFAULT getdate(),
F9RSINW CHAR(2) NOT NULL DEFAULT '' , F9RSINW CHAR(2) NOT NULL DEFAULT '',
F9RDSIN CHAR(256) NOT NULL DEFAULT '' , F9RDSIN CHAR(256) NOT NULL DEFAULT '',
F9RPCDC CHAR(256) NOT NULL DEFAULT '' , F9RPCDC CHAR(256) NOT NULL DEFAULT '',
PRIMARY KEY( F9RCSOC , F9RIDES , F9RFPDE ) ) ; PRIMARY KEY( F9RCSOC,F9RIDES,F9RFPDE ))
ELSE
SELECT 1 AS EXIST;
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9DRT00K')
CREATE TABLE F9DRT00K ( CREATE TABLE F9DRT00K (
F9TCSOC CHAR(10) NOT NULL DEFAULT '' , F9TCSOC CHAR(10) NOT NULL DEFAULT '',
F9TCADO CHAR(10) NOT NULL DEFAULT '' , F9TCADO CHAR(10) NOT NULL DEFAULT '',
F9TDDES CHAR(30) NOT NULL DEFAULT '' , F9TDDES CHAR(30) NOT NULL DEFAULT '',
F9TCLDC CHAR(10) NOT NULL DEFAULT '' , F9TCLDC CHAR(10) NOT NULL DEFAULT '',
F9TCDD1 CHAR(2) NOT NULL DEFAULT '' , F9TCDD1 CHAR(2) NOT NULL DEFAULT '',
F9TCSOS CHAR(6) NOT NULL DEFAULT '' , F9TCSOS CHAR(6) NOT NULL DEFAULT '',
F9TCCAU CHAR(6) NOT NULL DEFAULT '' , F9TCCAU CHAR(6) NOT NULL DEFAULT '',
F9TTCAU CHAR(6) NOT NULL DEFAULT '' , F9TTCAU CHAR(6) NOT NULL DEFAULT '',
F9TTMOV CHAR(6) NOT NULL DEFAULT '' , F9TTMOV CHAR(6) NOT NULL DEFAULT '',
F9TFCEE CHAR(6) NOT NULL DEFAULT '' , F9TFCEE CHAR(6) NOT NULL DEFAULT '',
PRIMARY KEY( F9TCSOC , F9TCADO , F9TCCAU , F9TTCAU , F9TTMOV , F9TFCEE ) ) ; PRIMARY KEY( F9TCSOC,F9TCADO,F9TCCAU,F9TTCAU,F9TTMOV,F9TFCEE ))
ELSE
SELECT 1 AS EXIST;
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9IVA00K')
CREATE TABLE F9IVA00K ( CREATE TABLE F9IVA00K (
F9ICSOC CHAR(10) NOT NULL DEFAULT '' , F9ICSOC CHAR(10) NOT NULL DEFAULT '',
F9IIDLA CHAR(18) NOT NULL DEFAULT '' , F9IIDLA CHAR(18) NOT NULL DEFAULT '',
F9IFPDE CHAR(1) NOT NULL DEFAULT '' , F9IFPDE CHAR(1) NOT NULL DEFAULT '',
F9IAFES CHAR(4) NOT NULL DEFAULT '' , F9IAFES CHAR(4) NOT NULL DEFAULT '',
F9IGIVA CHAR(1) NOT NULL DEFAULT '' , F9IGIVA CHAR(1) NOT NULL DEFAULT '',
F9ITPGI CHAR(10) NOT NULL DEFAULT '' , F9ITPGI CHAR(10) NOT NULL DEFAULT '',
F9IDXML CHAR(1) NOT NULL DEFAULT '' , F9IDXML CHAR(1) NOT NULL DEFAULT '',
F9ITCFO CHAR(1) NOT NULL DEFAULT '' , F9ITCFO CHAR(1) NOT NULL DEFAULT '',
F9ICCFO CHAR(10) NOT NULL DEFAULT '' , F9ICCFO CHAR(10) NOT NULL DEFAULT '',
F9IDRSO CHAR(60) NOT NULL DEFAULT '' , F9IDRSO CHAR(60) NOT NULL DEFAULT '',
F9IIDFI CHAR(30) NOT NULL DEFAULT '' , F9IIDFI CHAR(30) NOT NULL DEFAULT '',
F9IPIVA CHAR(28) NOT NULL DEFAULT '' , F9IPIVA CHAR(28) NOT NULL DEFAULT '',
F9ICFIS CHAR(16) NOT NULL DEFAULT '' , F9ICFIS CHAR(16) NOT NULL DEFAULT '',
F9ICADO CHAR(10) NOT NULL DEFAULT '' , F9ICADO CHAR(10) NOT NULL DEFAULT '',
F9ICSOS CHAR(6) NOT NULL DEFAULT '' , F9ICSOS CHAR(6) NOT NULL DEFAULT '',
F9INDOC CHAR(20) NOT NULL DEFAULT '' , F9INDOC CHAR(20) NOT NULL DEFAULT '',
F9IUDOC DATE NOT NULL DEFAULT getdate() , F9IUDOC DATE NOT NULL DEFAULT getdate(),
F9ISIVA CHAR(10) NOT NULL DEFAULT '' , F9ISIVA CHAR(10) NOT NULL DEFAULT '',
F9ICREG CHAR(6) NOT NULL DEFAULT '' , F9ICREG CHAR(6) NOT NULL DEFAULT '',
F9INPRI CHAR(20) NOT NULL DEFAULT '' , F9INPRI CHAR(20) NOT NULL DEFAULT '',
F9IUPRI DATE NOT NULL DEFAULT getdate() , F9IUPRI DATE NOT NULL DEFAULT getdate(),
F9IFOOA CHAR(10) NOT NULL DEFAULT '' , F9IFOOA CHAR(10) NOT NULL DEFAULT '',
F9ITROT CHAR(6) NOT NULL DEFAULT '' , F9ITROT CHAR(6) NOT NULL DEFAULT '',
F9INRRO CHAR(20) NOT NULL DEFAULT '' , F9INRRO CHAR(20) NOT NULL DEFAULT '',
F9IURGO DATE NOT NULL DEFAULT getdate() , F9IURGO DATE NOT NULL DEFAULT getdate(),
F9ICLDF CHAR(10) NOT NULL DEFAULT '' , F9ICLDF CHAR(10) NOT NULL DEFAULT '',
F9INMF1 CHAR(100) NOT NULL DEFAULT '' , F9INMF1 CHAR(100) NOT NULL DEFAULT '',
F9ICLDN CHAR(10) NOT NULL DEFAULT '' , F9ICLDN CHAR(10) NOT NULL DEFAULT '',
F9INMF2 CHAR(100) NOT NULL DEFAULT '' , F9INMF2 CHAR(100) NOT NULL DEFAULT '',
F9ICLDA CHAR(10) NOT NULL DEFAULT '' , F9ICLDA CHAR(10) NOT NULL DEFAULT '',
F9INMF3 CHAR(100) NOT NULL DEFAULT '' , F9INMF3 CHAR(100) NOT NULL DEFAULT '',
F9ICLD4 CHAR(10) NOT NULL DEFAULT '' , F9ICLD4 CHAR(10) NOT NULL DEFAULT '',
F9INMF4 CHAR(100) NOT NULL DEFAULT '' , F9INMF4 CHAR(100) NOT NULL DEFAULT '',
F9ICLD5 CHAR(10) NOT NULL DEFAULT '' , F9ICLD5 CHAR(10) NOT NULL DEFAULT '',
F9INMF5 CHAR(100) NOT NULL DEFAULT '' , F9INMF5 CHAR(100) NOT NULL DEFAULT '',
F9ICLD6 CHAR(10) NOT NULL DEFAULT '' , F9ICLD6 CHAR(10) NOT NULL DEFAULT '',
F9INMF6 CHAR(100) NOT NULL DEFAULT '' , F9INMF6 CHAR(100) NOT NULL DEFAULT '',
F9ICLD7 CHAR(10) NOT NULL DEFAULT '' , F9ICLD7 CHAR(10) NOT NULL DEFAULT '',
F9INMF7 CHAR(100) NOT NULL DEFAULT '' , F9INMF7 CHAR(100) NOT NULL DEFAULT '',
F9ICLD8 CHAR(10) NOT NULL DEFAULT '' , F9ICLD8 CHAR(10) NOT NULL DEFAULT '',
F9INMF8 CHAR(100) NOT NULL DEFAULT '' , F9INMF8 CHAR(100) NOT NULL DEFAULT '',
F9ICLD9 CHAR(10) NOT NULL DEFAULT '' , F9ICLD9 CHAR(10) NOT NULL DEFAULT '',
F9INMF9 CHAR(100) NOT NULL DEFAULT '' , F9INMF9 CHAR(100) NOT NULL DEFAULT '',
F9ICL10 CHAR(10) NOT NULL DEFAULT '' , F9ICL10 CHAR(10) NOT NULL DEFAULT '',
F9INM10 CHAR(100) NOT NULL DEFAULT '' , F9INM10 CHAR(100) NOT NULL DEFAULT '',
F9IUTEE CHAR(10) NOT NULL DEFAULT '' , F9IUTEE CHAR(10) NOT NULL DEFAULT '',
F9IUHEL DATETIME NOT NULL DEFAULT getdate() , F9IUHEL DATETIME NOT NULL DEFAULT getdate(),
F9IUHEW DATETIME NOT NULL DEFAULT getdate() , F9IUHEW DATETIME NOT NULL DEFAULT getdate(),
F9IDDES CHAR(30) NOT NULL DEFAULT '' , F9IDDES CHAR(30) NOT NULL DEFAULT '',
F9ITPRT CHAR(2) NOT NULL DEFAULT '' , F9ITPRT CHAR(2) NOT NULL DEFAULT '',
F9IAPRT NUMERIC(4, 0) NOT NULL DEFAULT 0 , F9IAPRT NUMERIC(4, 0) NOT NULL DEFAULT 0,
F9INPRT NUMERIC(10, 0) NOT NULL DEFAULT 0 , F9INPRT NUMERIC(10, 0) NOT NULL DEFAULT 0,
F9IURIC DATETIME NOT NULL DEFAULT getdate() , F9IURIC DATETIME NOT NULL DEFAULT getdate(),
PRIMARY KEY( F9ICSOC , F9IIDLA , F9IFPDE , F9ISIVA , F9ICREG , F9INPRI , F9IUPRI , F9ITPGI ) ) ; PRIMARY KEY( F9ICSOC,F9IIDLA,F9IFPDE,F9ISIVA,F9ICREG,F9INPRI,F9IUPRI,F9ITPGI ))
ELSE
SELECT 1 AS EXIST;
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9PWA00K')
CREATE TABLE F9PWA00K ( CREATE TABLE F9PWA00K (
F9PCSOC CHAR(10) NOT NULL DEFAULT '' , F9PCSOC CHAR(10) NOT NULL DEFAULT '',
F9PCDFN CHAR(2) NOT NULL DEFAULT '' , F9PCDFN CHAR(2) NOT NULL DEFAULT '',
F9PCDNT CHAR(2) NOT NULL DEFAULT '' , F9PCDNT CHAR(2) NOT NULL DEFAULT '',
F9PCDA1 CHAR(2) NOT NULL DEFAULT '' , F9PCDA1 CHAR(2) NOT NULL DEFAULT '',
F9PCDA2 CHAR(2) NOT NULL DEFAULT '' , F9PCDA2 CHAR(2) NOT NULL DEFAULT '',
F9PCDA3 CHAR(2) NOT NULL DEFAULT '' , F9PCDA3 CHAR(2) NOT NULL DEFAULT '',
F9PCDA4 CHAR(2) NOT NULL DEFAULT '' , F9PCDA4 CHAR(2) NOT NULL DEFAULT '',
F9PCDA5 CHAR(2) NOT NULL DEFAULT '' , F9PCDA5 CHAR(2) NOT NULL DEFAULT '',
F9PCDA6 CHAR(2) NOT NULL DEFAULT '' , F9PCDA6 CHAR(2) NOT NULL DEFAULT '',
F9PCDA7 CHAR(2) NOT NULL DEFAULT '' , F9PCDA7 CHAR(2) NOT NULL DEFAULT '',
F9PCDA8 CHAR(2) NOT NULL DEFAULT '' , F9PCDA8 CHAR(2) NOT NULL DEFAULT '',
F9PPCDC CHAR(256) NOT NULL DEFAULT '' , F9PPCDC CHAR(256) NOT NULL DEFAULT '',
PRIMARY KEY( F9PCSOC ) ) ; PRIMARY KEY( F9PCSOC ))
ELSE
SELECT 1 AS EXIST;
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9ERROR')
CREATE TABLE F9ERROR( CREATE TABLE F9ERROR(
IDESTR CHAR(18) NOT NULL, IDESTR CHAR(18) NOT NULL,
NUMREG NUMERIC(7,0) NOT NULL, NUMREG NUMERIC(7,0) NOT NULL,
@ -119,5 +132,6 @@ CREATE TABLE F9ERROR(
ESCLUDI CHAR(1), ESCLUDI CHAR(1),
ESCLUSO CHAR(2), ESCLUSO CHAR(2),
DESCRERR VARCHAR(110), DESCRERR VARCHAR(110),
PRIMARY KEY(IDESTR, NUMREG) PRIMARY KEY(IDESTR, NUMREG))
); ELSE
SELECT 1 AS EXIST;