110 lines
2.5 KiB
C++
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);
|
|
}
|