otl库select数据库中的数据
#include <otl/otlv4.h>
struct rule_s
{
std::string code;
float qul;
};
bool tool_class::ReadRiverRuleData(std::string ODBC_API, std::string sql)
{
std::vector<rule_s> rule_s_v;
otl_connect db;
try
{
db.rlogon(ODBC_API.c_str());
otl_stream query_stream;
query_stream.open(256, sql.c_str(), db);
for (auto& row : query_stream)
{
rule_s rule;
query_stream >> rule.a >> rule.b ;
rule_s_v.push_back(rule);
}
query_stream.close();
}
catch (otl_exception& ex)
{
std::cout << "select error" << std::endl;
std::cout << "SQL: " << ex.stm_text << std::endl;
std::cout << "Message: " << ex.msg << std::endl;
std::cout << "State: " << ex.sqlstate << std::endl;
return false;
}
catch (const std::exception& ex)
{
std::cout << "otl error: " << ex.what() << std::endl;
return false;
}
db.logoff();
return true;
}