拜仁拜仁 发表于 2008-6-26 16:56:40

莫名其妙的异常

两段基本相同的代码,执行起来却一个没异常而另一个异常!真不知道为什么会如此!两段代码的SQL语句在SQL SERVER里面运行又是没有错误的!

运行正常的代码段:
        if(Choose==2){
            Connect(Server);
                          _bstr_t vSQL;
                          vSQL="SELECT * FROM BOOK WHERE FLAG_BORROW=\'Y\' OR FLAG_BORROW=\'y\'";
            m_pRecordset->Open(vSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
                          if(!m_pRecordset->adoBOF||!m_pRecordset->adoEOF)
                for(m_pRecordset->MoveFirst();!m_pRecordset->adoEOF;m_pRecordset->MoveNext()){
                  char FID;
                  strcpy(FID,(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BOOK_ID"));
                                        if(!strcmp(ID,FID)){
                                          Disconnect();          
                                                return 1;
                                        }//if(find)
                                }//for()
                          Disconnect();
                          return 0;
        }//if(Choose==2),find if there is the book can be borrowed

运行错误的代码段:
        if(Choose==3){
            Connect(Server);
                          _bstr_t vSQL;
                          vSQL="SELECT * FROM BORROW_RETURN WHERE READER_ID=";
                          strcat(vSQL,"\'");
                          strcat(vSQL,NowReader->ID);
                          strcat(vSQL,"\'");
            m_pRecordset->Open(vSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);//经测试,这是出现异常的语句
            if(!m_pRecordset->adoBOF||!m_pRecordset->adoEOF)
                          for(m_pRecordset->MoveFirst();!m_pRecordset->adoEOF;m_pRecordset->MoveNext()){
                  char FID;
                  strcpy(FID,(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BOOK_ID"));
                                        if(!strcmp(ID,FID)){
                                          Disconnect();          
                                                return 1;
                                        }//if(find)
                                }//for()
                          Disconnect();
                          return 0;
        }//if(Choose==3),find if the present reader has borrowed the book

究竟两段代码不同在哪里啊!?望各位高手指教!

[ 本帖最后由 拜仁拜仁 于 2008-6-26 16:58 编辑 ]

ehxz 发表于 2008-6-26 17:32:26

报异常的地方不一定是异常的产生根源地,查看别的地方,也许就不报了。

拜仁拜仁 发表于 2008-6-26 20:07:29

我是程序执行到那一个语句时出现异常。因为我试过设断点测试,测试到程序是执行到那语句时产生异常。
页: [1]
查看完整版本: 莫名其妙的异常

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com