通过ADO操作ORACLE数据库有关问题
通过ADO操作ORACLE数据库问题
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; //这里就抛出异常
.....
不知道为什么?
------解决方案--------------------
pRs-> Fields-> GetItem( "ID ")-> value = (long)nID; //这里就抛出异常
------解决方案--------------------
请使用 PutValue :
pRs-> Fields-> GetItem( "ID ")-> PutValue(_bstr_t(nID));
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; //这里就抛出异常
.....
不知道为什么?
------解决方案--------------------
pRs-> Fields-> GetItem( "ID ")-> value = (long)nID; //这里就抛出异常
------解决方案--------------------
请使用 PutValue :
pRs-> Fields-> GetItem( "ID ")-> PutValue(_bstr_t(nID));