Patch level : 12.00 1326
Files correlati : ca0.exe cg0.exe ve0.exe Inivo a CRM Chiusura commesse fino all'anno
This commit is contained in:
parent
689b71f3b9
commit
d699ef3972
@ -682,12 +682,13 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi
|
|||||||
TODBC_recordset recset;
|
TODBC_recordset recset;
|
||||||
TToken_string odbc_str(dsn.mid(5), ',');
|
TToken_string odbc_str(dsn.mid(5), ',');
|
||||||
TString_array files;
|
TString_array files;
|
||||||
TString_array keys;
|
|
||||||
TString_array values;
|
|
||||||
TConfig ini(name); ini.set_paragraph("Transaction");
|
TConfig ini(name); ini.set_paragraph("Transaction");
|
||||||
TString tr_type = ini.get("Action"); tr_type.upper();
|
TString tr_type = ini.get("Action"); tr_type.upper();
|
||||||
TString main_file;
|
TString main_file;
|
||||||
|
HIDDEN int __magic_find_tables = -2;
|
||||||
|
|
||||||
|
if (__magic_find_tables == -2)
|
||||||
|
__magic_find_tables = ini_get_bool(CONFIG_STUDIO, "Main", "MAGIC_FIND_TABLES");
|
||||||
main_file << num;
|
main_file << num;
|
||||||
db_op op = db_add;
|
db_op op = db_add;
|
||||||
|
|
||||||
@ -726,8 +727,6 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi
|
|||||||
|
|
||||||
if (to_elab)
|
if (to_elab)
|
||||||
{
|
{
|
||||||
keys.destroy();
|
|
||||||
values.destroy();
|
|
||||||
ini.set_paragraph(*row);
|
ini.set_paragraph(*row);
|
||||||
TTrec wrk(curr_file_num);
|
TTrec wrk(curr_file_num);
|
||||||
int nfields = wrk.fields();
|
int nfields = wrk.fields();
|
||||||
@ -746,16 +745,115 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HIDDEN int __magic_find_tables = -2;
|
|
||||||
|
|
||||||
if (__magic_find_tables == -2)
|
|
||||||
__magic_find_tables = ini_get_bool(CONFIG_STUDIO, "Main", "MAGIC_FIND_TABLES");
|
|
||||||
|
|
||||||
if (__magic_find_tables)
|
if (__magic_find_tables)
|
||||||
{
|
{
|
||||||
TString check_statement = "SELECT * FROM ";
|
// TString check_statement = "SELECT * FROM ";
|
||||||
|
|
||||||
check_statement << name << " LIMIT 1;";
|
// check_statement << name << " LIMIT 1;";
|
||||||
|
bool descr = false;
|
||||||
|
TString_array keyst;
|
||||||
|
TString_array valuest;
|
||||||
|
|
||||||
|
for (int i = 0; i < nfields; i++)
|
||||||
|
{
|
||||||
|
TToken_string def = wrk.fielddef(i);
|
||||||
|
TString field(def.get(0));
|
||||||
|
TFieldtypes t = (TFieldtypes)def.get_int(1);
|
||||||
|
TString str = ini.get(field);
|
||||||
|
|
||||||
|
if (key.find(field) >= 0 && str.blank())
|
||||||
|
{
|
||||||
|
ini.set_paragraph(main_file);
|
||||||
|
str = ini.get(field);
|
||||||
|
if (str.blank())
|
||||||
|
str << rowkey.get();
|
||||||
|
ini.set_paragraph(*row);
|
||||||
|
}
|
||||||
|
str = str.strip("\"");
|
||||||
|
if (key.find(field) >= 0 && str.blank())
|
||||||
|
str << rowkey; // qui max
|
||||||
|
|
||||||
|
if (curr_file_num == LF_RIGHEDOC)
|
||||||
|
{
|
||||||
|
if (field == RDOC_DESCR && str.len() > 50)
|
||||||
|
{
|
||||||
|
TString v;
|
||||||
|
TString add_fld;
|
||||||
|
TToken_string row("", '~');
|
||||||
|
|
||||||
|
add_fld = RDOC_DESCLUNGA;
|
||||||
|
v = "X";
|
||||||
|
row = make_val(add_fld, _boolfld, recset.driver(), v);
|
||||||
|
valuest.add(row);
|
||||||
|
add_fld = RDOC_DESCEST;
|
||||||
|
row = make_val(add_fld, _alfafld, recset.driver(), str.smid(50));
|
||||||
|
valuest.add(row);
|
||||||
|
str = str.sleft(50).trim();
|
||||||
|
descr = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
if (descr && (field == RDOC_DESCLUNGA || field == RDOC_DESCEST))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
TToken_string row(make_val(field, t, recset.driver(), str), '~');
|
||||||
|
|
||||||
|
valuest.add(row);
|
||||||
|
}
|
||||||
|
int pos = key.find("|");
|
||||||
|
|
||||||
|
if (pos > 0)
|
||||||
|
key = key.left(pos);
|
||||||
|
pos = 0;
|
||||||
|
rowkey.restart();
|
||||||
|
FOR_EACH_STR_TOKEN(key, field)
|
||||||
|
{
|
||||||
|
TString fld = field;
|
||||||
|
|
||||||
|
if (fld.starts_with("UPPER"))
|
||||||
|
{
|
||||||
|
fld = fld.smid(7);
|
||||||
|
fld.rtrim(1);
|
||||||
|
fld << "_UPPER";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pos = fld.find("[");
|
||||||
|
|
||||||
|
if (pos > 0)
|
||||||
|
fld = fld.left(pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
TString str = ini.get(fld);
|
||||||
|
|
||||||
|
if (str.blank())
|
||||||
|
{
|
||||||
|
ini.set_paragraph(main_file);
|
||||||
|
str = ini.get(fld);
|
||||||
|
if (str.blank())
|
||||||
|
str << rowkey.get();
|
||||||
|
ini.set_paragraph(*row);
|
||||||
|
}
|
||||||
|
str = str.strip("\"");
|
||||||
|
|
||||||
|
TToken_string def = wrk.fielddef(wrk.field(fld));
|
||||||
|
TFieldtypes t = (TFieldtypes)def.get_int(1);
|
||||||
|
|
||||||
|
if (pos > 0)
|
||||||
|
{
|
||||||
|
int start = atoi(field.mid(pos + 1));
|
||||||
|
|
||||||
|
pos = field.find(',', pos + 1);
|
||||||
|
str = str.smid(start, pos > 0 ? atoi(field.mid(pos + 1)) : 0);
|
||||||
|
fld << "_MID";
|
||||||
|
}
|
||||||
|
|
||||||
|
TToken_string row(make_val(fld, t, recset.driver(), str), '~');
|
||||||
|
|
||||||
|
keyst.add(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
TString check_statement = build_statement(recset, op, curr_file_num, name, keyst, valuest);
|
||||||
err = recset.exec(check_statement);
|
err = recset.exec(check_statement);
|
||||||
err = (abs(err) == SQL_NO_TABLE) ? 0 : 1;
|
err = (abs(err) == SQL_NO_TABLE) ? 0 : 1;
|
||||||
}
|
}
|
||||||
@ -776,7 +874,11 @@ HIDDEN void odbc_send(const TString & dsn, int num, TAuto_token_string & elab_fi
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
bool descr = false;
|
bool descr = false;
|
||||||
|
TString_array keys;
|
||||||
|
TString_array values;
|
||||||
|
|
||||||
|
keys.destroy();
|
||||||
|
values.destroy();
|
||||||
for (int i = 0; i < nfields; i++)
|
for (int i = 0; i < nfields; i++)
|
||||||
{
|
{
|
||||||
TToken_string def = wrk.fielddef(i);
|
TToken_string def = wrk.fielddef(i);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user