70 Error(
"IsValid",
"row closed");
74 Error(
"IsValid",
"field index out of bounds");
88 MetaData fieldMD = (*fFieldInfo)[field];
90 return fieldMD.getInt(MetaData::ATTR_DATA_SIZE);
98 Error(
"TOracleRow",
"GetField(): out-of-range or No RowData/ResultSet/MetaData");
117 char str_number[200];
119 int fPrecision, fScale, fDataType;
125 if (
fResult->isNull(field+1))
continue;
127 fDataType = (*fFieldInfo)[field].getInt(MetaData::ATTR_DATA_TYPE);
131 fPrecision = (*fFieldInfo)[field].getInt(MetaData::ATTR_PRECISION);
132 fScale = (*fFieldInfo)[field].getInt(MetaData::ATTR_SCALE);
134 if ((fScale == 0) || (fPrecision == 0)) {
135 res =
fResult->getString(field+1);
137 double_val =
fResult->getDouble(field+1);
147 res =
fResult->getString(field+1);
153 case SQLT_TIMESTAMP_TZ:
154 case SQLT_TIMESTAMP_LTZ:
159 res =
fResult->getString(field+1);
162 Error(
"GetRowData",
"Oracle type %d was not yet tested - please inform ROOT developers", fDataType);
166 int len = res.length();
173 }
catch (SQLException &oraex) {
174 Error(
"GetRowData",
"%s", (oraex.getMessage()).c_str());
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
~TOracleRow()
Destroy row object.
ULong_t GetFieldLength(Int_t field) final
Get length in bytes of specified field.
Bool_t IsValid(Int_t field)
Check if row is open and field index within range.
TOracleRow(const TOracleRow &)=delete
std::vector< oracle::occi::MetaData > * fFieldInfo
void Close(Option_t *opt="") final
Close row.
oracle::occi::ResultSet * fResult
const char * GetField(Int_t field) final
static const char * GetDatimeFormat()
return value of actul convertion format from timestamps or date to string
static const char * GetFloatFormat()
return current printf format for float/double members, default "%e"