在字符串驱动器中读取访问违规



字符串destructor如何抛出异常?它是在可变 s的尝试块的末尾投掷的。

Environment *env = Environment::createEnvironment(Environment::DEFAULT);
Connection *con;
con = env->createConnection(Config::login, Config::password, Config::connection_string);

string sqlStmt = "SELECT user FROM dual";
auto stmt = con->createStatement(sqlStmt);
ResultSet *rset = stmt->executeQuery();
try {
    rset->next();
    string s = rset->getString(1);
    cout << "user: " << s << endl;
}  // exception thrown here

阅读访问违规_pnext是0xfffffffffffffffffffff

问题是不同版本的CRT库。您的应用程序和Oracle的CRT库版本必须匹配。

似乎不像std :: string exception。

裸露的rset-&gt; next((是不明智的。应该在任何一个之前检查一下rset,更重要的是,如果(rset-&gt; next((({.. your code ..}是保护您免受自己的股票modus-operandi。

只需检查:

if (rset->next() == Status::DATA_AVAILABLE) {
   auto s = rset->getString(1);
} 

相关内容

  • 没有找到相关文章

最新更新