HRESULT SaveRS(_RecordsetPtr pRS/*IN*/, IStream* * ppStream/*OUT*/)
{
HRESULT hr=S_OK;
try
{
*ppStream=NULL; // QI and return IPersistStream
IPersistStreamPtr pIPersist(pRS);
if (pIPersist )
{
//Create a standard stream in memory
if (FAILED(hr=CreateStreamOnHGlobal(0, TRUE, (IStream **)ppStream)))
return hr; // Persist the pRS
if (FAILED(hr=OleSaveToStream(pIPersist, *ppStream)))
return hr; }
else
return E_NOINTERFACE;
}
catch (_com_error & e)
{
return e.Error();
}
return S_OK;}void MyFunc()
{
if( ! AfxOleInit() )
return ; using namespace ADODB ;
try
{
HRESULT hr = 0 ; //
_ConnectionPtr pConnection ;
if( FAILED(pConnection.CreateInstance(__uuidof(Connection))))
return ; CString strConn = "Provider=OraOLEDB.Oracle;User ID=hello;Password=hello;Persist Security Info=True;Data Source=local" ;
if( FAILED(pConnection->Open(_bstr_t(strConn),"","",adConnectUnspecified)))
return ; //
_CommandPtr cmd ;
if(FAILED(cmd.CreateInstance(__uuidof(Command))))
return ; cmd->ActiveConnection = pConnection ;
cmd->CommandText = (LPCTSTR)"Select * From PacsUser" ; _RecordsetPtr pRS = cmd->Execute(NULL,NULL,adCmdText) ; IStreamPtr pStream ;
hr = SaveRS(pRS,(IStream**)&pStream) ; // 这里返回 H_NOINTERFACE,调试后发现,是OleSaveToStream错误。
解决方案 »
- 为什么我的一个WIN32 SDK程序上加载位图不能正确显示呢?
- 在数据库里面字段怎么求和啊??
- 如何在VC++6.0平台使用GDI+? 多谢(小弟首次接触GDI+ 请大侠们开导..)
- 一个我找不到原因的问题
- 简单的多线程问题?(内含多个问题)
- 关于CDialogBar的问题,请教高手(急,谢谢!)
- 如何用9行代码干掉Windows XP/2000
- 为什么我关闭无模式属性页的时候,弹出一个框框说:试图执行系统不支持的操作!
- 请问如何改变控件的风格?
- 大哥哥、大姐姐们我怎么实现在Windows网络环境下输入UserID及Password向Domain Server验证该User是否为合法User?
- usb驱动设计,wdm.h文件为什么报错
- OpenProcess返回错误87,增加debug权限后仍无效
--
没仔细看---
sorry
http://msdn2.microsoft.com/en-us/library/ms678407.aspx
//////////////////////////////////////////////////
ppstm
[out] The address of IStream* pointer variable that receives the interface pointer to the new stream object. Its value cannot be NULL.
用command执行得到的recordset就是不能SaveRs