smen c6224c0057 Revert "Patch level : 12.0 nopatch"
This reverts commit e69c5ff43c7bbf3fa1d26d808adaf242c7ebea1d.
2021-11-08 10:32:34 +01:00

110 lines
2.5 KiB
C++

#include <tsdb.h>
#include <set>
/******************************************************************************
* SSimpleQuery *
* Classe per esecuzioni di query temporanee (wrapper semplice per SACommand) *
******************************************************************************/
const TDate SSimple_query::sq_get_date(const char * field)
{
TDate date(_rec.get_date(field));
if(!date.ok() || date == 19000100)
{
TString dt_str = _rec.get(field);
if (dt_str.len() > 10)
dt_str = dt_str.left(10);
date = dt_str;
}
return date;
}
const real SSimple_query::sq_get_real(const char * field)
{
const real app(_rec.get(field));
return app;
}
TString SSimple_query::sq_get(const char* field, bool rtrim)
{
TString fld = _rec.get(field);
if (rtrim)
fld.rtrim();
return fld;
}
TString SSimple_query::sq_get(const string& field, const bool rtrim)
{
return sq_get(field.c_str(), rtrim);
}
TString SSimple_query::sq_get(TString& field, bool rtrim)
{
return sq_get(static_cast<const char*>(field), rtrim);
}
TString SSimple_query::sq_get(unsigned int column, bool rtrim)
{
return _rec.get(column);
}
unsigned SSimple_query::sq_get_num_fields() const
{
return _rec.get_num_fields();
}
TString SSimple_query::sq_get_name_field(const unsigned column) const
{
return _rec.get_name_field(column);
}
int SSimple_query::sq_get_width_field(const unsigned column) const
{
return _rec.get_width_field(column);
}
TFieldtypes SSimple_query::sq_get_type_field(const unsigned column) const
{
const TString type = _rec.get_type_field(column);
if (type == "dtUnknown")
return _nullfld;
if (type == "dtBool")
return _boolfld;
if (type == "dtShort")
return _intfld;
if (type == "dtULong")
return _longfld;
if (type == "dtDouble")
return _realfld;
if (type == "dtNumeric")
return _rec.get_scale_field(column) ? _realfld : _intfld;
if (type == "dtDateTime")
return _datefld;
if (type == "dtString")
return _alfafld;
if (type == "dtBytes")
return _intfld;
if (type == "dtLongBinary")
return _alfafld;
if (type == "dtLongChar")
return _alfafld;
if (type == "dtBLob")
return _alfafld;
if (type == "dtCLob")
return _alfafld;
if (type == "dtCursor")
return _nullfld;
if (type == "dtSpecificToDBMS")
return _nullfld;
return _nullfld;
}
const char* SSimple_query::sq_get_token_text_error(const int token, const bool erase)
{
TToken_string errors(sq_get_text_error(erase), '\n');
return errors.get(token);
}