我在将结果集转换成XML时报这样的错:“The rowset was built over a live data feed and cannot be restarted”
我不明白为什么,在ORACLE数据库是正常的,但是在SYBASE数据库就出现这样的错,不知道ORACLE与SYBASE数据库在处理类似代码的时候有什么区别,程序代码如下:
void CSelectCond::AddCompareInfoColForRs(_RecordsetPtr rs)
{
//struct _finddata_t xml_file;
//long hFile;
rs->CursorLocation = adUseServer;
DeleteFile("c:\\temp.xml"); //if the file exists, delete it MSXML::IXMLDOMDocumentPtr pXMLDoc;
_com_util::CheckError(pXMLDoc.CreateInstance(_T("MSXML.DOMDocument")));

rs->Save("c:\\temp.xml",adPersistXML);//程序走到这里就跳到最后去了(SYBASE数据库出问题ORACLE数据是正常的)
pXMLDoc->load("c:\\temp.xml"); MSXML::IXMLDOMElementPtr pNode= pXMLDoc->selectSingleNode("xml/s:Schema/s:ElementType");
MSXML::IXMLDOMElementPtr pColNode= pXMLDoc->createElement("s:AttributeType"); pColNode->setAttribute("name","compinfo");
pColNode->setAttribute("rs:number","9");
pColNode->setAttribute("rs:nullable","true");
pColNode->setAttribute("rs:writeunknown","true"); MSXML::IXMLDOMElementPtr pTypeNode= pXMLDoc->createElement("s:datatype");
pTypeNode->setAttribute("dt:type","string");
pTypeNode->setAttribute("rs:dbtype","str");
pTypeNode->setAttribute("rs:maxLength","200");
pColNode->appendChild(pTypeNode); pNode->appendChild(pColNode); DeleteFile("c:\\temp.xml"); //if the file exists, delete it pXMLDoc->save("C:\\temp.xml"); rs->Close();
rs->Open("C:\\temp.xml","Provider=MSPersist;",adOpenDynamic,adLockOptimistic,adCmdFile);
}