SqlResult DiagnosticRecordStorage::GetField(int32_t recNum, DiagnosticField field, app::ApplicationDataBuffer& buffer) const { // Header record. switch (field) { case IGNITE_SQL_DIAG_HEADER_CURSOR_ROW_COUNT: { buffer.PutInt64(GetRowCount()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_HEADER_DYNAMIC_FUNCTION: { buffer.PutString(GetDynamicFunction()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_HEADER_DYNAMIC_FUNCTION_CODE: { buffer.PutInt32(GetDynamicFunctionCode()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_HEADER_NUMBER: { buffer.PutInt32(GetStatusRecordsNumber()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_HEADER_RETURNCODE: { buffer.PutInt32(GetReturnCode()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_HEADER_ROW_COUNT: { buffer.PutInt64(GetRowsAffected()); return SQL_RESULT_SUCCESS; } default: break; } if (recNum < 1 || static_cast<size_t>(recNum) > statusRecords.size()) return SQL_RESULT_NO_DATA; // Status record. const DiagnosticRecord& record = GetStatusRecord(recNum); switch (field) { case IGNITE_SQL_DIAG_STATUS_CLASS_ORIGIN: { buffer.PutString(record.GetClassOrigin()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_COLUMN_NUMBER: { buffer.PutInt32(record.GetColumnNumber()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_CONNECTION_NAME: { buffer.PutString(record.GetConnectionName()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_MESSAGE_TEXT: { buffer.PutString(record.GetMessageText()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_NATIVE: { buffer.PutInt32(0); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_ROW_NUMBER: { buffer.PutInt64(record.GetRowNumber()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_SERVER_NAME: { buffer.PutString(record.GetServerName()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_SQLSTATE: { buffer.PutString(record.GetSqlState()); return SQL_RESULT_SUCCESS; } case IGNITE_SQL_DIAG_STATUS_SUBCLASS_ORIGIN: { buffer.PutString(record.GetSubclassOrigin()); return SQL_RESULT_SUCCESS; } default: break; } return SQL_RESULT_ERROR; }