数据库查询问题

joy8223 2003-12-03 10:15:12
帮忙看看下面这段代码,出错处理我省了
STDMETHODIMP CTest::GetInfo(BSTR *Info)
{
// TODO: Add your implementation code here
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open("Provider=SQLOLEDB;SERVER=(local);DATABASE=exam;UID=sa;PWD=linchun","","",-1);

CComBSTR m_bstrSQL;
m_bstrSQL.Append("select * from single where Qid<>0");
_bstr_t m_strResult(m_bstrSQL,FALSE);
CComVariant m_varNum;

_RecordsetPtr m_pRs;
m_pRs=m_pConnection->Execute(m_strResult,&m_varNum,-1);

CComVariant m_varData;
CComBSTR m_bstrInfo;
while(!m_pRs->ADOEOF)
{

m_pRs->GetFields()->GetItem("content")->get_Value(&m_varData);
m_bstrInfo.AppendBSTR(m_varData.bstrVal);
m_pRs->MoveNext();
}

m_pRs->Close();
m_pConnection->Close();
*Info=m_bstrInfo;
return S_OK;
}
这段代码没问题,客户端调用也完全正常,
问题在这句
m_bstrSQL.Append("select * from single where Qid<>0");
我库中本来就没有Qid=0的数据,所以这句也就相当于
m_bstrSQL.Append("select * from single");
但这样编译成生dll是没问题,但在客户端调用就出现异常,为什么呢?
还有m_pRs->Close();后,还需要释放吗?
...全文
34 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luohualiushui 2003-12-03
  • 打赏
  • 举报
回复
m_pRs是个智能指针,再close之后,不用释放

上面的一个问题就比较古怪了
魔芋 2003-12-03
  • 打赏
  • 举报
回复
sysfreestring _bstr_t
joy8223 2003-12-03
  • 打赏
  • 举报
回复
改成insert into 后依然出现异常(客户端)
joy8223 2003-12-03
  • 打赏
  • 举报
回复
就是阿
不知道该怎么办,有谁能给我一个insert into的例子

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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