⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_在vc中用ole db读写sql server中的blob字段.htm

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>return 
            ++m_cRef;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>ULONG<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>CSeqStream::Release(void)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>//<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>ASSERT(m_cRef);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>if(--m_cRef)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;</SPAN>return 
            m_cRef;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>delete 
            this;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>return 
            0;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>HRESULT CSeqStream::QueryInterface(REFIID riid, void** 
            ppv)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>//<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>ASSERT(ppv);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>*ppv = 
            NULL;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>if (riid == 
            IID_IUnknown)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>*ppv = this;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>if (riid == 
            IID_ISequentialStream)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>*ppv = this;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>if(*ppv)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>((IUnknown*)*ppv)-&gt;AddRef();</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>return S_OK;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>return 
            E_NOINTERFACE;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US>BOOL 
            CSeqStream::Seek(ULONG iPos)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>//Make sure the 
            desired position is within the buffer</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>//<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>ASSERT(iPos == 0 || iPos &lt; m_cBufSize);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>//Reset the 
            current buffer position</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_iPos = 
            iPos;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>return 
            TRUE;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US>BOOL 
            CSeqStream::Clear()</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>//Frees the 
            buffer</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_iPos<SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>= 0;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_cBufSize<SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= 
            0;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>CoTaskMemFree(m_pBuffer);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_pBuffer = 
            NULL;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>return 
            TRUE;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US>BOOL 
            CSeqStream::CompareData(void* pBuffer)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>//<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>ASSERT(pBuffer);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>//Quick and easy 
            way to compare user buffer with the stream</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>return 
            memcmp(pBuffer, m_pBuffer, m_cBufSize)==0;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>}</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>HRESULT CSeqStream::Read(void *pv, ULONG cb, ULONG* 
            pcbRead)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>{</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp; </SPAN><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;</SPAN>//Parameter 
            checking</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>if(pcbRead)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>*pcbRead = 0;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>if(!pv)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>return STG_E_INVALIDPOINTER;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>if(cb == 
            0)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>return S_OK;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes"></SPAN></SPAN>&nbsp;</P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>//Actual code</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>ULONG cBytesLeft 
            = m_cBufSize - m_iPos;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>ULONG cBytesRead 
            = cb &gt; cBytesLeft ? cBytesLeft : cb;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN 
            lang=EN-US>&nbsp;<o:p></o:p></SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>//if no more 
            bytes to retrieve return </SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>if(cBytesLeft == 
            0)</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -