操作_ConnectionPtr的Execute函数返回的_RecordsetPtr出现问题
我用的是vc6.0访问sqlserver 2005
1 当我直接用_RecordsetPtr的open方法打开记录集后可以对记录集进行修改操作 代码如下:
结果成功修改了数据
2 当我直接用_ConnectionPtr的Execute方法获得记录集后就不能对记录集进行修改操作 代码如下:
结果出现错误:
当前记录集不支持更新。这可能是提供程序的限制 也可能是选定锁定类型的限制。Unknown error 0x800A0CB3
这是怎么回事,各位好心人请帮帮忙
1 当我直接用_RecordsetPtr的open方法打开记录集后可以对记录集进行修改操作 代码如下:
_RecordsetPtr rs;
...
...
try()
{
rs->Open(sqlstring,
_variant_t((IDispatch*)pApp->m_pConnection),
ADODB::adOpenStatic,ADODB::adLockOptimistic,ADODB::adCmdText);
rs->Fields->Item["UserId"]->Value = (_variant_t)m_newedit;
rs->Update();
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
CString sError;
sError.Format( "Source : %s \n Description : %s\n",
(LPCSTR)bstrSource,(LPCSTR)bstrDescription);
AfxMessageBox(sError);
}
结果成功修改了数据
2 当我直接用_ConnectionPtr的Execute方法获得记录集后就不能对记录集进行修改操作 代码如下:
_ConnectionPtr rs_conn;
_RecordsetPtr rs;
...
...
try()
{
rs=rs_conn->Execute(_bstr_t(sqlstring),0,0);
rs->Fields->Item["UserId"]->Value = (_variant_t)m_newedit;
rs->Update();
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
CString sError;
sError.Format( "Source : %s \n Description : %s\n",
(LPCSTR)bstrSource,(LPCSTR)bstrDescription);
AfxMessageBox(sError);
}
结果出现错误:
当前记录集不支持更新。这可能是提供程序的限制 也可能是选定锁定类型的限制。Unknown error 0x800A0CB3
这是怎么回事,各位好心人请帮帮忙
...全文
相关推荐
_RecordsetPtr使用方法
_RecordsetPtr的使用不仅限于这些基本操作,还支持更多的高级功能,如事务管理、数据更新等。掌握_RecordsetPtr的使用对于进行高效数据库操作具有重要意义。
VC连接Access数据库
_ConnectionPtr 智能指针,通常用于打开、关闭一个库连接或用它的 Execute 方法来执行一个不返回结果的命令语句(用法和_CommandPtr 中的 Execute 方法类似)。
VC中操作ADO数据库资料
例如,使用_ConnectionPtr的Open方法打开数据库连接,_CommandPtr的Execute方法执行SQL命令,_RecordsetPtr的Open方法获取记录集,以及遍历、修改、添加和删除记录等操作
ADO指针智能指针说明
_RecordsetPtr类用于创建和管理Recordset对象,提供了遍历数据、定位当前记录、执行增删改查操作的能力。
vb2010 sql2008实例
**_ConnectionPtr**:用于建立数据库的连接。2. **_RecordsetPtr**:专门用于通过记录集操作数据库,如增删改查等操作。3.


疑难问题
