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;
|
||||
}
|
||||
|
||||
/*
|
||||
TVariant& TRecordset::get_tmp_var() const
|
||||
{
|
||||
static TArray _page; // Variants to be returned by get
|
||||
@ -510,6 +511,7 @@ TVariant& TRecordset::get_tmp_var() const
|
||||
_next_var++;
|
||||
return *var;
|
||||
}
|
||||
*/
|
||||
|
||||
const TVariant& TRecordset::get(const char* column_name) const
|
||||
{
|
||||
|
@ -75,7 +75,7 @@ protected:
|
||||
|
||||
void find_and_reset_vars();
|
||||
void parsed_text(TString& sql) const;
|
||||
TVariant& get_tmp_var() const;
|
||||
//TVariant& get_tmp_var() const;
|
||||
bool export_dbf(int logicnum);
|
||||
|
||||
public: // Absolutely needed methods
|
||||
|
@ -396,3 +396,27 @@ bool TVariant_stack::overflow() const
|
||||
{
|
||||
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& get_tmp_var();
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user