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

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

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            </SPAN>return S_FALSE; </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>//Copy to users 
            buffer the number of bytes requested or remaining</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>memcpy(pv, 
            (void*)((BYTE*)m_pBuffer + m_iPos), cBytesRead);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_iPos += 
            cBytesRead;</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(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 = cBytesRead;</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 != 
            cBytesRead)</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_FALSE; </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 
            S_OK;</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></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::Write(const void *pv, ULONG cb, 
            ULONG* pcbWritten)</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>//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(!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(pcbWritten)</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>*pcbWritten = 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>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>&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>//Enlarge the 
            current buffer</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_cBufSize += 
            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>//Need to append 
            to the end of the stream</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_pBuffer = 
            CoTaskMemRealloc(m_pBuffer, m_cBufSize);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>memcpy((void*)((BYTE*)m_pBuffer + m_iPos), pv, 
cb);</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>m_iPos += 
            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(pcbWritten)</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>*pcbWritten = 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>return 
            S_OK;</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></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>void 
            CSeqStream::ResetPosition()</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-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>m_iPos=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 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">设要从一个文件读数据写入到数据库中的一个</SPAN><SPAN 
            lang=EN-US>BLOB</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字段,在</SPAN><SPAN 
            lang=EN-US>SQL Server</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN 
            lang=EN-US>Table</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">名为</SPAN><SPAN 
            lang=EN-US>tMaterials</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,它的</SPAN><SPAN 
            lang=EN-US>Key</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为</SPAN><SPAN 
            lang=EN-US>MaterialID,BLOB</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字段名为</SPAN><SPAN 
            lang=EN-US>Stream</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN> 
            <SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">写入</SPAN><SPAN 
            lang=EN-US>BLOB</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">字段数据时可用如下的方法:</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 
            SetBLOBData(WCHAR *awcname,CString strFile)</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-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>DBOBJECT ObjectStruct;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>ObjectStruct.dwFlags = STGM_READ;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>ObjectStruct.iid<SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>= 
            IID_ISequentialStream;</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>struct 
            BLOBDATA</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>DBSTATUS<SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>dwStatus;<SPAN style="mso-spacerun: yes">&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>DWORD<SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>dwLength; </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>ISequentialStream*<SPAN style="mso-spacerun: yes">&nbsp; 
            </SPAN>pISeqStream;</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; </SPAN>BLOBDATA 
            BLOBGetData;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>BLOBDATA 
            BLOBSetData;</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>const ULONG 
            cBindings = 1;</SPAN></P>
            <P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>DBBINDING 
            rgBindings[cBindings]; </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>HRESULT hr = 
            S_OK;</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>IAccessor*<SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>pIAccessor<SPAN 

⌨️ 快捷键说明

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