怎么样从数据库中取出二进制数据到ADO的Stream对象中来..
解决方案 »
- NDIS 5.1 与网卡的驱动程序不兼容?
- windows正常定时运行的指针到win7下就不能运动了。开启任务管理器又变正常了。求解。
- 为什么在visual studio c++与sql server中做相同的查询语句,得到的结果会不同呢?
- ###请教位图缩放非典型
- 我在应用程序里访问COM组件,COM组件通过ADO访问SQL数据库.
- 请问如何得到打印机的墨盒中的油墨的数量或百分比?(200分)
- 应聘到一个公司,大家看看这个条件能否接受?
- 坐标系旋转问题
- “特丽珑”的管子是不是都是纯平的?
- 怎么让图标在tray area中闪烁
- 我用创天中文VC6,编译时没出错,但运行程序时出现:error LNK2001…
- 看《对等网络软件的原码分析》,讨论P2P的技术,应用前景!!发言着有分!!!
int main(int argc, char* argv[])
{
printf("This sample shows you how to access BLOB via ADO and store it as file"
"The second field of the database is BLOB\n"
"If it works, it is writen by masterz,\n"
"otherwise I don't know who write it\n");
CoInitialize(NULL);
try
{
_ConnectionPtr pConn("ADODB.Connection");
_RecordsetPtr pRst("ADODB.Recordset");
_variant_t varBLOB;
pConn->Open(_bstr_t("Driver={Microsoft Access Driver (*.mdb)};DBQ=GetChunk.mdb"),"","",adConnectUnspecified);
pRst->Open(_bstr_t("BlobTable"),_variant_t((IDispatch *) pConn, true),
adOpenKeyset, adLockOptimistic, adCmdTable);
pRst->MoveFirst();
//long lDataLength = pRst->Fields->Item[1L]->ActualSize;
//varBLOB = pRst->Fields->Item[1L]->GetChunk(lDataLength);
_StreamPtr stream;
stream.CreateInstance("ADODB.Stream");
_variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
stream->raw_Open(varOptional, adModeUnknown, adOpenStreamUnspecified,NULL,NULL);
stream->put_Type(adTypeBinary);
stream->Write(pRst->GetFields()->GetItem(_variant_t((long)1))->GetValue());
stream->SaveToFile("test.txt",adSaveCreateOverWrite);
printf("save stream to file finished\n");
stream->Close();
pRst->Close();
pConn->Close();
}
catch (_com_error &e)
{
printf("Description = '%s'\n", (char*) e.Description());
}
::CoUninitialize();
return 0;
}