16 ClassImp(TODBCResult);
21 TODBCResult::TODBCResult(SQLHSTMT stmt)
26 SQLSMALLINT columnCount;
28 SQLRETURN retcode = SQLNumResultCols(fHstmt, &columnCount);
30 if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
31 fFieldCount = columnCount;
37 TODBCResult::~TODBCResult()
45 void TODBCResult::Close(Option_t *)
47 SQLFreeHandle(SQL_HANDLE_STMT, fHstmt);
54 const char *TODBCResult::GetFieldName(Int_t field)
56 SQLCHAR columnName[1024];
58 SQLSMALLINT nameLength;
61 SQLSMALLINT decimalDigits;
65 SQLDescribeCol(fHstmt, field+1, columnName, 1024,
66 &nameLength, &dataType,
67 &columnSize, &decimalDigits, &nullable);
69 if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
return 0;
71 fNameBuffer = (
const char*) columnName;
80 TSQLRow *TODBCResult::Next()
82 if (fHstmt==0)
return 0;
84 SQLRETURN retcode = SQLFetch(fHstmt);
86 if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
87 return new TODBCRow(fHstmt, fFieldCount);