Patch level : 12.0 556

Files correlati     : ba8.exe

Costruttore variant nullo errato, non trovava piu i campi della query principale dalla sottosezione.

git-svn-id: svn://10.65.10.50/branches/R_10_00@24450 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
bonazzi 2018-04-02 10:09:41 +00:00
parent 715de709b8
commit ba1d2edb95
2 changed files with 8 additions and 16 deletions

View File

@ -579,11 +579,7 @@ const TVariant& TRecordset::get_var(const char* name) const
bool TRecordset::set_var(const char* name, const TVariant& var, bool create) bool TRecordset::set_var(const char* name, const TVariant& var, bool create)
{ {
bool ok = false; bool ok = false;
TVariant* old = (TVariant*)_var.objptr(name);
TVariant* old = NULL;
if(_var.is_key(name))
old = (TVariant*)_var.objptr(name);
if (old != NULL) if (old != NULL)
{ {
*old = var; *old = var;
@ -1562,12 +1558,8 @@ TCursor* TISAM_recordset::cursor() const
TParagraph_string msg(use, 64); TParagraph_string msg(use, 64);
TPerformance_profiler prof(msg.get(0)); TPerformance_profiler prof(msg.get(0));
TISAM_recordset* my = (TISAM_recordset*)this; TISAM_recordset* my = (TISAM_recordset*)this;
#ifdef LINUX
string s(use.get_buffer());
istringstream instr(s);
#else
istrstream instr(use.get_buffer(), use.len()+1); //"barata" x aggiungere il carattere finale istrstream instr(use.get_buffer(), use.len()+1); //"barata" x aggiungere il carattere finale
#endif
TCursor_parser parser(instr, my->_column); TCursor_parser parser(instr, my->_column);
my->_relation = parser.get_relation(); my->_relation = parser.get_relation();
@ -1615,17 +1607,17 @@ bool TISAM_recordset::move_to(TRecnotype pos)
{ {
TCursor* c = cursor(); TCursor* c = cursor();
bool ok = c != NULL && pos >= 0 && pos < c->items(); bool ok = c != NULL && pos >= 0 && pos < c->items();
if (ok) if (ok)
{ {
*c = pos; *c = pos;
} }
else else
if (pos >= c->items()) if (pos >= c->items())
*c = c->items(); *c = c->items();
else else
if (pos < 0L) if (pos < 0L)
*c = 0L; *c = 0L;
return ok; return ok;
} }
void TISAM_recordset::reset() void TISAM_recordset::reset()

View File

@ -5,7 +5,7 @@
// TVariant // TVariant
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
const TVariant NULL_VARIANT = ""; const TVariant NULL_VARIANT;
void TVariant::set_null() void TVariant::set_null()
{ {