关于_RecordsetPtr

hopy 2002-01-25 02:07:59
请问可不可以不连数据库使用_RecordsetPtr?
可以的话。怎样增加字段,并怎样插入记录(VC)?
...全文
266 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
turbopeng 2002-01-31
  • 打赏
  • 举报
回复
MM
zheng_rui 2002-01-30
  • 打赏
  • 举报
回复
to acptvc(微软全球技术中心 VC技术支持)
如果我用 *pRecordet = pSet.Detach()
还用pSet->addref() 吗?
detach 之后,pset 不会release 接口了吧
acptvc 2002-01-29
  • 打赏
  • 举报
回复
在MSDN中搜寻Atl2Ado,你会找到一个例子。

我手边也有一段代码,希望能对你有帮助。
STDMETHODIMP CSimpleAdo::GetRecordset(_Recordset **pRecordset, BSTR bstrSQL)
{
_RecordsetPtr pSet;
try{
_variant_t varTemp;
// add a record set
pSet.CreateInstance(__uuidof(Recordset));
pSet->Fields->Append("Name",adVarChar,255,adFldIsNullable,varTemp);
pSet->Fields->Append("Title",adVarChar,255,adFldIsNullable,varTemp);
pSet->Fields->Append("Address",adVarChar,255,adFldIsNullable,varTemp);
pSet->Fields->Append("Phone",adVarChar,255,adFldIsNullable,varTemp);
pSet->Fields->Append("Employee ID",adVarChar,255,adFldIsNullable,varTemp);
pSet->CursorLocation = adUseClient;
pSet->Open( _variant_t(DISP_E_PARAMNOTFOUND, VT_ERROR),
_variant_t(DISP_E_PARAMNOTFOUND, VT_ERROR),
adOpenStatic,
adLockBatchOptimistic,
adCmdUnspecified);
pSet->AddNew();

// fill in the recordset

pSet->PutCollect(_variant_t("Name"), _variant_t("GTEC"));
pSet->PutCollect(_variant_t("Title"), _variant_t("Support Center"));
pSet->PutCollect(_variant_t("Address"), _variant_t("ShangHai"));
pSet->PutCollect(_variant_t("Phone"), _variant_t("02164692288"));
pSet->PutCollect(_variant_t("Employee ID"), _variant_t("12345"));

pSet->Update();

}
catch(const _com_error &e)
{
// throw;
return e.WCodeToHRESULT (e.WCode ());
}

*pRecordset=pSet;
pSet->AddRef ();
return S_OK;
}


微软亚洲技术中心 VC技术支持

本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。
elia 2002-01-28
  • 打赏
  • 举报
回复
捕获一下这个异常,看看错误信息是什么。是哪一句出现异常的?
hopy 2002-01-28
  • 打赏
  • 举报
回复
调试报错“Unhandled exception in debug.exe(KETNEL.DLL):0xE06D7363:Microsoft C++ Exception”。
elia 2002-01-28
  • 打赏
  • 举报
回复
怎样不行,说清楚一点,我试过没问题了.
hopy 2002-01-27
  • 打赏
  • 举报
回复
好象不行,能不能详细点
elia 2002-01-25
  • 打赏
  • 举报
回复
_RecordsetPtr sp_rs(__uuidof(Recordset));
sp_rs.AddRef();
sp_rs->Fields->Append("column1",adBSTR,20,adFldIsNullable,vtMissing); //增加字段
sp_rs->Open(vtMissing,vtMissing,adOpenDynamic,adLockOptimistic,-1); //无连接
sp_rs->AddNew(); //插入记录
sp_rs->Fields->GetItem("column1")->PutValue("aaaa"); //赋值

草草写的一段代码,大概意思没错。

1,650

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧