日期:2014-05-17  浏览次数:21051 次

windows已在xx.exe中触发一个断点.其原因可能是堆被损坏
m_env = Environment::createEnvironment(Environment::DEFAULT);
Statement *stmt;
ResultSet *result;
try {
m_conn=m_env->createConnection("tc_szpt","c153","242SZPT");
stmt=m_conn->createStatement();
result = stmt->executeQuery("select * from tc_szpt.t_build_person");
while (result->next())
{
string username = result->getString(1);
CString cc;
cc.Format("%s",username.c_str());
username.empty();
}//执行到这里弹出这个错误的(VS2008程序:windows已在xxx.exe中触发一个断点,其原因可能是堆被损坏,这说明xx.exe中或它所加载的任何DLL中有bug。 )
stmt->closeResultSet(result);
  } catch (SQLException& ex) {
string aa = ex.getMessage();
CString cc;
cc.Format("%s",aa.c_str());
AfxMessageBox(cc);
return ;
  }
  m_conn->terminateStatement(stmt);
  m_env->terminateConnection(m_conn);
  Environment::terminateEnvironment(m_env);

------解决方案--------------------
这个问题不是库的吧。你把sql部分去掉调试一下
------解决方案--------------------
SQL code
string username = result->getString(0);
试下,如果没问题。证明你数据库只有一条记录。因而string username = result->getString(1);
报错