1、不能通过AddNew来向数据库中添加数据,一添加数据就出现抛出异常。
2、不能通过打开Recordset来查询BLOB类型的数据
_ConnectionPtr pConn;
_RecordsetPtr pRs;HRESULT hr;
int nID;
byte *pPhoto;
TRY
{
hr = pConn.CreateInstance(__uuidof(Connection));
if (FALIED(hr))
{
return;
}
hr = pRs.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
pConn.Release();
return;
} pConn->Open("Provider=MSDAORA;Data Source=CAS;USER Id=ORACLECY;Password=123;","","",adModeUnkown);
pRs->Open("SELECT ID,NAME,PHOTO FROM CAS.USERINFO",_variant((IDispath *)pConn,true),adOpenDynamic,adLockOptimistic,adCmdText); pRes->AddNew();
pRs->Fields->GetItem("ID")->value = nID; //这里就抛出异常
.....
不知道为什么?
2、不能通过打开Recordset来查询BLOB类型的数据
_ConnectionPtr pConn;
_RecordsetPtr pRs;HRESULT hr;
int nID;
byte *pPhoto;
TRY
{
hr = pConn.CreateInstance(__uuidof(Connection));
if (FALIED(hr))
{
return;
}
hr = pRs.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
pConn.Release();
return;
} pConn->Open("Provider=MSDAORA;Data Source=CAS;USER Id=ORACLECY;Password=123;","","",adModeUnkown);
pRs->Open("SELECT ID,NAME,PHOTO FROM CAS.USERINFO",_variant((IDispath *)pConn,true),adOpenDynamic,adLockOptimistic,adCmdText); pRes->AddNew();
pRs->Fields->GetItem("ID")->value = nID; //这里就抛出异常
.....
不知道为什么?
pRs->Fields->GetItem("ID")->PutValue(_bstr_t(nID));
_variant_t varBLOB;
CString str;
long lDataSize = pRs->GetFields()->GetItem("clobcol")->ActualSize;
varBLOB = pRs->GetFields()->GetItem("clobcol")->GetChunk(lDataSize);
if(varBLOB.vt == VT_BSTR)
str = varBLOB.bstrVal;
pRs.CreateInstance(__uuidof(Recordset));
pRs->Open((_variant_t)strSQL,
m_pConnection.GetInterfacePtr(), // m_pConnection 为 _ConnectionPtr 变量
adOpenDynamic,
adLockOptimistic,
adCmdText);
如果没有查询中没有BLOB的话,是可是以前执行查询的