好郁闷呀,当一个存储过程有纪录集返回时,一切正常,但一旦存储过程无纪录集时,就发生异常。
如:
comand.commandtext="scanAdver";
RecorderPtr prs=command.execute(NULL,NULL,adCmdProc);
if(!prs->GetadoEOF()) <==运行到此时,如果无纪录集返回时,程序发生异常
...... 我也试过prs->GetRecordCount(),prs->adoEOF,都不行。
快救救俺吧。本来俺都快被老板给逼着要跳楼了,现在又出现这么烦心的问题
如:
comand.commandtext="scanAdver";
RecorderPtr prs=command.execute(NULL,NULL,adCmdProc);
if(!prs->GetadoEOF()) <==运行到此时,如果无纪录集返回时,程序发生异常
...... 我也试过prs->GetRecordCount(),prs->adoEOF,都不行。
快救救俺吧。本来俺都快被老板给逼着要跳楼了,现在又出现这么烦心的问题
我的代码大概如下:
hr=connect.CreateInstance(__uuidof(Connection));
if(!SUCCEEDED(hr))
goto error_code;
hr=connect->Open("DSN=UAdverEMailDB;Uid=sa;Pwd=","","",-1);
hr=command.CreateInstance(__uuidof(Command));
if(!SUCCEEDED(hr))
goto error_code; command3->ActiveConnection=connect;
command3->CommandType=adCmdStoredProc;
command3->CommandText=_bstr_t("ScanNewAdver");
_RecordsetPtr rs;
rs=command3.Excute(NULL,NULL,adCmdProc);
if(rs->adoEOF!=FALSE) //或是 if(!rs->GetadoEOF()) <====此部份如果是空纪录集的话,程序执行这步会异常。
.....
select B.Adver_ID as Adver_ID, B.Adver_SendTimeID as Adver_SendTimeID ,
C.AdverType_ID as AdverType_ID, A.Adver_FileName as Adver_FileName ,
A.Adver_Document as Adver_Document
from AdverTime_tbl B ,adverInfo_tbl A,adverinfo_tbl C
where
datediff(minute,GetDate(),B.Adver_SendTime)<=60
and datediff(minute,GetDate(),B.Adver_SendTime)>=0
and A.Adver_Status=1
and A.adver_id=B.adver_id
and C.adver_id=A.adver_id