在分布式系统中,,,客户端从中间层com查询上千条记录,,服务器和客户端不同一台机器,com怎样返回这些记录啊?返回大数组,,,还是做 在分布式系统中,,,客户端从中间层com查询上千条记录,,服务器和客户端不同一台 机器,com怎样返回这些记录啊? 返回大数组,,,还是做成非常长的字符串,,还是其他啊?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 返回 ADO Recordset对象。 返回ado的记录集,方法可参考如下:STDMETHODIMP CMyInterface::GetRS(IDispatch **pRs){ AFX_MANAGE_STATE(AfxGetStaticModuleState()) IObjectContext *pCtx = NULL; HRESULT hr; hr = GetObjectContext(&pCtx); if (FAILED(hr)) { if (hr != CONTEXT_E_NOCONTEXT) { return hr; } } _ConnectionPtr pConn; _RecordsetPtr pRS; try { _bstr_t strSQL; strSQL = "SELECT * FROM tablename"; hr = pConn.CreateInstance(__uuidof(Connection)); if (FAILED(hr)) { _com_raise_error(hr); } hr = pConn->Open(VS_CONNECT, "sa", "", -1); //VS_CONNECT是在StdAfx.h中定义的数据源名称 if (FAILED(hr)) { _com_raise_error(hr); } hr = pRS.CreateInstance(__uuidof(Recordset)); if (FAILED(hr)) { _com_raise_error(hr); } pRS->CursorLocation = adUseClient; hr = pRS->Open(strSQL, pConn->ConnectionString, adOpenStatic, adLockOptimistic, adCmdText); if (FAILED(hr)) { _com_raise_error(hr); } } catch (_com_error &e) { if (pCtx != NULL) { pCtx->SetAbort(); } return e.Error(); } pRS->putref_ActiveConnection(NULL); *pRs = (IDispatch *)pRS.Detach(); if (pCtx != NULL) { pCtx->SetComplete(); } return S_OK;} 在vc里,,,如何处理xml包阿? 使用recordset就OK何必要用xml呢 强烈支持 Stepdev(海纳百川 有容乃大)。请问 Stepdev(海纳百川 有容乃大),如果查询到的数据有上万条,如何显示这么多条的数据呢?如果一次性插入所有的记录到listctrl中,肯定会让用户长时间的等待。 分页显示,或者取得部分数据显示,是一个好办法。问题:如果将数据插入到CListCtrl中,用户拖动滚动条时,同时显示相应位置的数据,让用户感觉所有的数据已经放在CListCtrl中了,好像有点难度,谁有好的办法解决数据显示问题? http://expert.csdn.net/Expert/topic/1582/1582797.xml?temp=3.159732E-02 如果才可以直接向网卡写数据,或者从网卡取得数据,而不是经过tcp协议层? 如何得到选择的树控中节点名字 通过TCPIP协议传输的数据到达目的地时候加了哪些额外的信息! 用什么函数把bool转换成True 和 False字符串。? 如何动态获取新的注册表主键值 vc.net下如何使用DDK?? ASP中怎么调用C语言编写的DLL或OCX中的函数? ListView烦人问题!!怎么不出现滚动条? 关于Dialog的启动顺序问题 getopenfilename的问题 另开新贴,解决一起送分!在线!!关于如何让主对话框到他的非模式对话框的上面来。 非模式对话框的数据交换
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()) IObjectContext *pCtx = NULL;
HRESULT hr; hr = GetObjectContext(&pCtx);
if (FAILED(hr))
{
if (hr != CONTEXT_E_NOCONTEXT)
{
return hr;
}
} _ConnectionPtr pConn;
_RecordsetPtr pRS; try
{
_bstr_t strSQL; strSQL = "SELECT * FROM tablename"; hr = pConn.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
{
_com_raise_error(hr);
} hr = pConn->Open(VS_CONNECT, "sa", "", -1); //VS_CONNECT是在StdAfx.h中定义的数据源名称
if (FAILED(hr))
{
_com_raise_error(hr);
} hr = pRS.CreateInstance(__uuidof(Recordset));
if (FAILED(hr))
{
_com_raise_error(hr);
} pRS->CursorLocation = adUseClient;
hr = pRS->Open(strSQL, pConn->ConnectionString, adOpenStatic, adLockOptimistic, adCmdText);
if (FAILED(hr))
{
_com_raise_error(hr);
}
}
catch (_com_error &e)
{
if (pCtx != NULL)
{
pCtx->SetAbort();
}
return e.Error();
} pRS->putref_ActiveConnection(NULL);
*pRs = (IDispatch *)pRS.Detach(); if (pCtx != NULL)
{
pCtx->SetComplete();
} return S_OK;
}
请问 Stepdev(海纳百川 有容乃大),如果查询到的数据有上万条,如何显示这么多条的数据呢?如果一次性插入所有的记录到listctrl中,肯定会让用户长时间的等待。