Patch level : 12.0 no-patch
Files correlati : include Commento : Tolta funzione get_tmp_var() da TRecordset e messa in TVariant, inoltre aggiornata l'implementazione come quella di get_tmp_string (creato array da 1024 celle, messo un controllo diverso per tornare alla prima posizione)
This commit is contained in:
parent
dd33d88b34
commit
751102232e
@ -494,6 +494,7 @@ int TRecordset::find_column(const char* column_name) const
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
TVariant& TRecordset::get_tmp_var() const
|
TVariant& TRecordset::get_tmp_var() const
|
||||||
{
|
{
|
||||||
static TArray _page; // Variants to be returned by get
|
static TArray _page; // Variants to be returned by get
|
||||||
@ -510,6 +511,7 @@ TVariant& TRecordset::get_tmp_var() const
|
|||||||
_next_var++;
|
_next_var++;
|
||||||
return *var;
|
return *var;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
const TVariant& TRecordset::get(const char* column_name) const
|
const TVariant& TRecordset::get(const char* column_name) const
|
||||||
{
|
{
|
||||||
|
@ -75,7 +75,7 @@ protected:
|
|||||||
|
|
||||||
void find_and_reset_vars();
|
void find_and_reset_vars();
|
||||||
void parsed_text(TString& sql) const;
|
void parsed_text(TString& sql) const;
|
||||||
TVariant& get_tmp_var() const;
|
//TVariant& get_tmp_var() const;
|
||||||
bool export_dbf(int logicnum);
|
bool export_dbf(int logicnum);
|
||||||
|
|
||||||
public: // Absolutely needed methods
|
public: // Absolutely needed methods
|
||||||
|
@ -396,3 +396,27 @@ bool TVariant_stack::overflow() const
|
|||||||
{
|
{
|
||||||
return _sp > 2048;
|
return _sp > 2048;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Temporary variant generator: a little step for a man, a variant step for campo!
|
||||||
|
|
||||||
|
TVariant& get_tmp_var()
|
||||||
|
{
|
||||||
|
static TArray ararar(1024);
|
||||||
|
static int next = 0;
|
||||||
|
|
||||||
|
TVariant* var = dynamic_cast<TVariant*>(ararar.objptr(next));
|
||||||
|
if (var == nullptr)
|
||||||
|
{
|
||||||
|
var = new TVariant(NULL_VARIANT);
|
||||||
|
ararar.add(var, next);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var->set_null();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (++next >= ararar.size())
|
||||||
|
next = 0;
|
||||||
|
return *var;
|
||||||
|
}
|
||||||
|
@ -113,6 +113,8 @@ public:
|
|||||||
TVariant_stack() : _sp(0) { }
|
TVariant_stack() : _sp(0) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TVariant& get_tmp_var();
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user