//------------------------------------------------------------------------------ /// \brief //------------------------------------------------------------------------------ std::string SqBcList::impl::SpTableSql () { std::string str; CStr packName = m_pack->GetPackage()->PackageName(); ColMap &colMap(iSpTableCols()); if (colMap.find(packName) == colMap.end()) return str; std::vector<CStr> &colStrs = colMap[packName].first; std::vector<CStr> &colTypes = colMap[packName].second; // find any aux variables that we don't create by default std::set<CStr> strs; strs.insert("K"); strs.insert("I"); strs.insert("J"); for (size_t i=3; i<colStrs.size(); ++i) // skip OID, CELLID, SPID { CStr tmp = colStrs[i]; tmp.ToUpper(); strs.insert(tmp); } std::vector<CStr> fieldStr = m_pack->m_fieldStrings; std::vector<CStr> aux; for (size_t i=0; i<fieldStr.size(); ++i) { CStr tmp = fieldStr[i]; tmp.ToUpper(); if (strs.find(tmp) == strs.end()) { colStrs.push_back(fieldStr[i]); colTypes.push_back("REAL"); } } std::stringstream ss; ss << "CREATE TABLE LST_STRESS_PERIODS (" << colStrs.front() << " " << colTypes.front(); for (size_t i=1; i<colStrs.size(); ++i) ss << ", " << colStrs[i] << " " << colTypes[i]; ss << ")"; return ss.str(); } // SqBcList::impl::SpTableSql