首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

程序调用ORACLE的OCCI接口的内部函数报错,请大侠指点

2013-10-11 
程序调用ORACLE的OCCI接口的内部函数报错,请大侠指导!主机:HP-UX B.11.31 U ia64 (td)用gdb调试程序的时候

程序调用ORACLE的OCCI接口的内部函数报错,请大侠指导!
主机:HP-UX B.11.31 U ia64 (td)
用gdb调试程序的时候报下面错误,请大侠指导一下。谢谢!

在调用ORACLE的OCCI接口的内部函数报的错误:
m_pStmt = m_pDBConn->m_pConn->createStatement(strSQL);

程序运行调试的日志:
CDataBase Copy Constructor Called!
aCC runtime: pure virtual function called for class "oracle::occi::Connection".

Program received signal SIGABRT, Aborted
  si_code: 0 - .
0x9fffffffbd20c970:0 in _lwp_kill+0x30 () from /usr/lib/hpux64/libpthread.so.1
(gdb) where
#0  0x9fffffffbd20c970:0 in _lwp_kill+0x30 ()
   from /usr/lib/hpux64/libpthread.so.1
#1  0x9fffffffbd1772a0:0 in pthread_kill+0x990 ()
   from /usr/lib/hpux64/libpthread.so.1
#2  0x9fffffffbc7f8080:0 in raise+0xe0 () from /usr/lib/hpux64/libc.so.1
#3  0x9fffffffbc9089b0:0 in abort+0x170 () from /usr/lib/hpux64/libc.so.1
#4  0x9fffffffbcf55c00:0 in __cxa_pure_virtual+0xe0 ()
   from /usr/lib/hpux64/libCsup.so.1
#5  0x4000000000121010:0 in CBindSQL::Open (this=0x9fffffffffffc580, 
    strSQL=@0x9fffffffffffc568, eSQLType=0) at COracleDB.cpp:2706
#6  0x40000000001ccf80:0 in O_RecreateFile::LoadFileFormate (
    this=0x9fffffffffffe4b0, nDsID=1501) at o_recreatefile.cpp:33
#7  0x4000000000165000:0 in main (argc=7, argv=0x9ffffffffffff168)
    at DSAllot.cpp:185
(gdb) bt
#0  0x9fffffffbd20c970:0 in _lwp_kill+0x30 ()
   from /usr/lib/hpux64/libpthread.so.1
#1  0x9fffffffbd1772a0:0 in pthread_kill+0x990 ()
   from /usr/lib/hpux64/libpthread.so.1
#2  0x9fffffffbc7f8080:0 in raise+0xe0 () from /usr/lib/hpux64/libc.so.1
#3  0x9fffffffbc9089b0:0 in abort+0x170 () from /usr/lib/hpux64/libc.so.1
#4  0x9fffffffbcf55c00:0 in __cxa_pure_virtual+0xe0 ()
   from /usr/lib/hpux64/libCsup.so.1
#5  0x4000000000121010:0 in CBindSQL::Open (this=0x9fffffffffffc580, 
    strSQL=@0x9fffffffffffc568, eSQLType=0) at COracleDB.cpp:2706
#6  0x40000000001ccf80:0 in O_RecreateFile::LoadFileFormate (
    this=0x9fffffffffffe4b0, nDsID=1501) at o_recreatefile.cpp:33
#7  0x4000000000165000:0 in main (argc=7, argv=0x9ffffffffffff168)
    at DSAllot.cpp:185
    
[解决办法]
char sSql[1024];

//CRecordset Rs(_mDB);
CBindSQL Rs(_pDb);
try
{
sprintf(sSql,"SELECT * FROM TABLE_DS_DEF A WHERE A.DS_ID = %d ", nDsID );

这里可能会出点问题,因为sSql没有初始化,格式化后,这个字串的内容可能因为没结束符而随机,你检查下,或者在sprintf用memset初始化一下。

热点排行