📄 3901.htm
字号:
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>return FALSE;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN>}</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN>hr = g_pICommandText->Execute(NULL, IID_IRowsetChange, NULL, NULL,</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>(IUnknown**)&pIRowsetChange);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>if (FAILED(hr))</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>TRACE0("Failed to execute the command\n");</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>return FALSE;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>} </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].iOrdinal = 1; //</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><SPAN lang=EN-US>1</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><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].obValue = offsetof(BLOBDATA, pISeqStream);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].obLength = offsetof(BLOBDATA, dwLength);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].obStatus = offsetof(BLOBDATA, dwStatus);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].pTypeInfo = NULL;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].pObject = &ObjectStruct;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].pBindExt = NULL;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].dwPart =<SPAN style="mso-spacerun: yes"> </SPAN>DBPART_VALUE | DBPART_STATUS | DBPART_LENGTH;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].dwMemOwner = DBMEMOWNER_CLIENTOWNED;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].eParamIO = DBPARAMIO_NOTPARAM;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].cbMaxLen = 0; </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].dwFlags = 0;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].wType = DBTYPE_IUNKNOWN;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].bPrecision = 0;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings[0].bScale = 0;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>hr = pIRowsetChange->QueryInterface(IID_IAccessor, </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>(void**)&pIAccessor);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>if (FAILED(hr))</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>TRACE0("Failed to get IAccessor interface.\n");</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>return FALSE;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>} </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>hr = pIAccessor->CreateAccessor(DBACCESSOR_ROWDATA,</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>cBindings,</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindings, </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>sizeof(BLOBDATA),</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>&hAccessor,</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>rgBindStatus);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>if (FAILED(hr))</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>TRACE0("Failed to create an accessor.\n");</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>return FALSE;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>} </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>hr = pIRowsetChange->QueryInterface(IID_IRowset, </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>(void **)&pIRowset);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>if (FAILED(hr))</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>TRACE0("Failed to get IRowset interface.\n");</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>return FALSE;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>}</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>hr = pIRowset->GetNextRows(NULL,0, 1,&cRowsObtained,&rghRows);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>hr = pIRowset->GetData(rghRows[0], </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>hAccessor, </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>&BLOBGetData);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>if (BLOBGetData.dwStatus == DBSTATUS_S_ISNULL)</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>//</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在数据库的当前字段为</SPAN><SPAN lang=EN-US>NULL</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>TRACE0("Provider returned a null value.\n");</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN>else if(BLOBGetData.dwStatus == DBSTATUS_S_OK) </SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 2"> </SPAN>//</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在这里,从服务端为你分配的</SPAN><SPAN lang=EN-US>ISequentialStream</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><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>//BLOBGetData.pISeqStream->Read(pBuffer,cBytes,&cBytesRead);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 2"> </SPAN>//</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><SPAN style="mso-spacerun: yes"> </SPAN>SAFE_RELEASE(BLOBGetData.pISeqStream);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>}</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>//</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></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN>pMySeqStream = new CSeqStream();</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN>//</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><SPAN style="mso-tab-count: 1"> </SPAN>CFile fle;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN>if (fle.Open(strFile,CFile::modeRead))</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-spacerun: yes"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>const ULONG cBytes = 4096;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>BYTE pWriteData[cBytes];<SPAN style="mso-spacerun: yes"> </SPAN>//</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><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>memset(pWriteData, '\0', cBytes);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>UINT nRead=0;</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US> <o:p></o:p></SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>nRead=fle.Read(pWriteData,cBytes);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 1"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>while (nRead>0)</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 2"> </SPAN>{</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 2"> </SPAN><SPAN style="mso-tab-count: 1"> </SPAN>pMySeqStream->Write(pWriteData,nRead,NULL);</SPAN></P>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN lang=EN-US><SPAN style="mso-tab-count: 2"> </SPAN><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -