#include #include /****************************************************************************** * 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(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); }