簡體   English   中英

oracle :: occi :: ResultSet :: next()使我的程序崩潰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM