[英]oracle::occi::ResultSet::next() crashes my program
我有一個在Windows 7上運行的64位C ++服務器應用程序,當它在數據庫上進行選擇並在結果集上調用next()時,該過程就簡單地死掉,沒有異常,沒有轉儲,並且在ResultSet-> next(之后沒有調試信息) )。 在數據庫上進行寫操作沒有問題,並且在32位版本上進行讀和寫操作都可以
我正在使用即時客戶端和SDK隨附的11.2版win64 oracle庫
編輯:這是最簡單的代碼
const std::string sql("select * from schedule_import");
std::auto_ptr<IRecordSet> query = m_conn->Open(sql);
while(query->Next()) // dies
{
const std::string key(query->GetField("bean_key"));
//...
IRecordSet只是DB驅動程序的通用功能(如next,getField)的接口,它在此處實現
bool OracleRecordSet::Next()
{
return m_pResultSet->next() != NULL; //crashes here
}
其中m_pResultSet是oracle :: occi :: ResultSet *
我不熟悉Oracle API,但問題是m_pResultSet是否不為NULL(如果發生分段錯誤)以及是否沒有異常(如果中止(),raise()堆棧)。
BR!
經過大量嘗試,我的問題得以解決。
我將調試程序鏈接到oraocci11.lib,因為我沒有調試版本,並且我認為這沒什么大不了的。 經過一番搜索,我發現了帶有相應dll的庫oraocci11d.lib的調試版本,崩潰不再存在
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.