gpt4 book ai didi

c++ - oracle occi getString 给出 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

转载 作者:行者123 更新时间:2023-11-27 22:29:29 28 4
gpt4 key购买 nike

我正在尝试通过 OCCI Oracle 查询在 ResultSet 上执行 getString,但我总是得到 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse) 断言。我的项目是多线程调试,我尝试将其设置为单线程调试,正如我在网上发现的那样,但这没有区别。

我有点不知道是什么导致了这个断言的发生。有人可以帮忙吗?

看来我只有 getString() 函数有它,其他任何函数都没有。

    oracle::occi::Environment* environment;
oracle::occi::Connection* con;
oracle::occi::Statement* stmt;
oracle::occi::ResultSet* res;


try{
environment = oracle::occi::Environment::createEnvironment(oracle::occi::Environment::DEFAULT);
con = environment->createConnection("db", "pssw", "DATABASE");

std::cout << "created connection" << std::endl;

std::stringstream query;

query << "SELECT MOD_KEY, MOD_SCRIPTLANGUAGE, MOD_SOURCE, MOD_CODE, MOD_STYLE, MOD_TYPE ";
query << "FROM DB.MEDICAL_OBS_DEF ";
query << "WHERE MOD_KEY = 735";

stmt = con->createStatement(query.str());
res = stmt->executeQuery();

res->setMaxColumnSize(3,100);

std::cout << "executed query" << std::endl;
std::string mystring;
while (res->next())
{

/*mystring = */res->getString(3); ///_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) Assert!
}
std::cout << "printed resultset" << std::endl;

stmt->closeResultSet(res);
con->terminateStatement(stmt);
environment->terminateConnection(con);

}catch(oracle::occi::SQLException &e){
std::cout<<e.what();
}

最佳答案

您是否已链接到 Oracle DLL 的调试版本(oraocci11d.liboraocci11d.dll)?

您的程序似乎使用了 Visual Studio 的内存调试选项,而您使用的 Oracle DLL 却没有。所以错误的发生是因为运行时库认为存在内存分配/释放问题。

关于c++ - oracle occi getString 给出 _BLOCK_TYPE_IS_VALID(pHead->nBlockUse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592563/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com