请看着两个问题
问题1:代码如下:
_ConnectionPtr pSybaseDb;
_ConnectionPtr pSqlserverDb;
_RecordsetPtr pRstRf = NULL;
IADORecordBinding *picRs = NULL;
CRfRs rfrs;
pRstRf=pSybaseDb->Execute("SELECT * FROM RfO ",NULL,adCmdText);//结果可能是多条记录,也可能为空
for(int i=0;!pRstRf->adoEOF;i++)
{
TESTHR(pRstRf->QueryInterface(__uuidof(IADORecordBinding),(LPVOID*)&picRs));
TESTHR(picRs->BindToRecordset(&rfrs));
pSqlserverDb->Execute("INSERT INTO Rf...",NULL,adCmdText);
pRstRf->MoveNext();
}
在这段代码中的for循环,当pRstRf从select语句中得到一条或多条记录时,程序可以很好的运行,但是,当得到0条记录时,程序就会出错,此时,如果把这两个TESTHR语句放在for语句的前面时,程序就没问题。请问这是什么原因?应该怎样改正?
问题2:
在用记录集绑定时,对date类型的绑定如果用adDBTimeStamp的话,应该把相应变量定义成什么类型?