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

语言理解有关问题

2013-02-19 
语言理解问题//L1Point.hclass L1Point{public:string TagName//.cpp OCCI访问Oracle数据库ResultSet *rs

语言理解问题


//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;

热点排行