MyException - 我的异常网
当前位置:我的异常网» C++ » 语言理解有关问题

语言理解有关问题

www.MyException.Cn  网友分享于:2013-02-20  浏览:49次
语言理解问题

//L1Point.h
class L1Point
{
  public:
     string TagName;

//.cpp OCCI访问Oracle数据库
ResultSet *rset = stmt->executeQuery ();
while (rset->next ())
{
    L1Point p1;
    if(!rset->isNull(1)) 
    {
 
         //使用这句进行赋值发生错误
         p1.TagName=rset->getString(1);
 
         //使用下面两句进行赋值可以通过,有何不同,为什么
         string nm=rset->getString(1);
 p1.TagName=nm;
        
 
    }


错误:
server.exe 中的 0x1048ad7a (msvcp100d.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0xccccccd0 时发生访问冲突
语法 C++ OCCI

------解决方案--------------------
两者语法不一样, 关键看rset->getString(1)返回参数类型和实际的值, 用调试器看一下.
下面是实际调用细节:

         //此处调用的是: string::operator=(const unsigned char*)  <= 崩溃
         p1.TagName=rset->getString(1);
      
         //此处调用的是: string:string(const unsigned char*) <= 不崩溃
         string nm=rset->getString(1);

         //此处调用的是: string:operator=(const string&)
         p1.TagName=nm;

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有