_variant_t proname
m_pRecordset =m_pConnection->Execute("select * from infot",&RecordsAffected,adCmdText);
proname=m_pRecordset->GetCollect("productname");
m_pRecordset->AddNew ();
m_pRecordset->PutCollect("numberthree",proname);
m_pRecordset->update();
为什么执行m_pRecordset->PutCollect("numberthree",proname);只要proname是类型_variant_t就不行,那我如何把proname=m_pRecordset->GetCollect("productname")的到的数据用m_pRecordset->PutCollect("numberthree",proname)插入到数据库中?proname应该转成什么类型?谢谢
m_pRecordset =m_pConnection->Execute("select * from infot",&RecordsAffected,adCmdText);
proname=m_pRecordset->GetCollect("productname");
m_pRecordset->AddNew ();
m_pRecordset->PutCollect("numberthree",proname);
m_pRecordset->update();
为什么执行m_pRecordset->PutCollect("numberthree",proname);只要proname是类型_variant_t就不行,那我如何把proname=m_pRecordset->GetCollect("productname")的到的数据用m_pRecordset->PutCollect("numberthree",proname)插入到数据库中?proname应该转成什么类型?谢谢
以下的代码实现:打开记录集,遍历所有记录,删除第一条记录,添加三条记录,移动光标到第二条
记录,更改其年龄,保存到数据库。 try
{
_variant_t vUsername,vBirthday,vID,vOld;
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM 学生信息",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
vID = m_pRecordset->GetCollect(_variant_t((long)0)); //取得第1列的值,从0开始计数,你也可以直接给出列的名称,如下一行
vUsername = m_pRecordset->GetCollect("姓名"); //取得姓名字段的值
vOld = m_pRecordset->GetCollect("年龄");
vBirthday = m_pRecordset->GetCollect("生日");
TRACE("id:%d,姓名:%s,年龄:%d,生日:%s\r\n",
vID.lVal,
(LPCTSTR)(_bstr_t)vUsername,
vOld.lVal,
(LPCTSTR)(_bstr_t)vBirthday); //在DEBUG方式下的OUTPUT窗口输出记录集中的记录
m_pRecordset->MoveNext(); //移到下一条记录
}
m_pRecordset->MoveFirst(); //移到首条记录
m_pRecordset->Delete(adAffectCurrent); //删除当前记录
for(int i=0;i<3;i++) //添加三条新记录并赋值
{
m_pRecordset->AddNew(); //添加新记录
m_pRecordset->PutCollect("学号",_variant_t((long)(i+10)));
m_pRecordset->PutCollect("姓名",_variant_t("王斌年"));
m_pRecordset->PutCollect("年龄",_variant_t((long)21));
m_pRecordset->PutCollect("生日",_variant_t("1930-3-15"));
}
m_pRecordset->Move(1,_variant_t((long)adBookFirst)); //从第一条记录往下移动一条记录,即移动到第二条记录处
m_pRecordset->PutCollect(_variant_t("年龄"),_variant_t((long)45)); //修改其年龄
m_pRecordset->Update(); //保存到库中
} catch (_com_error e){}