为什么一个ADO查询不支持DISTINCT 或group by? 难道没人知道? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 支持啊.m_pset.CreateInstance("ADODB.Recordset"); CString strSQL; strSQL.Format("select distinct * table1 group by field1"); m_pset->Open(_variant_t(strSQL), _variant_t((IDispatch*)g_pDBConnect,true), adOpenStatic, adLockOptimistic, adCmdText);参数要用adCmdText,而不是adCmdTable你哪里出错了?错误提示和代码是怎样的啊? 肯定支持嘛,ado怎么可能不支持sql? HRESULT hr = m_pRecordset->Open(_variant_t(strSQL),(IDispatch*)m_pConnection, adOpenStatic, adLockOptimistic, adCmdText);就是查询出来的记录集为空 记录集为空和支不支持DISTINCT 或group by 没有关系,ADO肯定支持了,不过要看你的数据库支不支持了,不过一般数据库都支持 我的数据库和ADO都支持,就是不知道为什么,是不是m_pConnection创建的时候有问题? m_pConnection->put_CommandTimeout(5); HRESULT hr = m_pConnection->Open(_bstr_t(szConnectString),_bstr_t(""),_bstr_t(""),-1); 可能是你的szConnectString有问题,下面是我的例子_bstr_t source("driver={sqloledb};Server=svrname;DATABASE=Northwind;UID=sa;PWD="); _bstr_t user("admin"); _bstr_t pwd(""); try{ hr=m_connection.CreateInstance(_uuidof(Connection)); if(SUCCEEDED(hr)) hr=m_connection->Open(source,user,pwd,16); else MessageBox("Connection Error"); if(SUCCEEDED(hr)) hr=m_recordset.CreateInstance(_uuidof(Recordset)); else MessageBox("Open Error"); if(SUCCEEDED(hr)) m_fConnected=TRUE; else m_fConnected=FALSE; } catch(_com_error &e) { // MessageBox(e.ErrorMessage()); AfxMessageBox(e.Description()); m_fConnected=FALSE; } if(!m_fConnected) MessageBox("ADO数据源初始化失败"); mfc控件使用 依次取数组值赋给变量 怎样让MDI添加一个新的层叠的视图? 面向无连接的网络编程问题,请高手指教!!!(在线等。 文件路径问题 求简单图象处理示例,很简单的. 如何给tabpage控件的每个page页的标题加一个图片,做成类似QQ的风格? 项目设置为Unicode的情况下CString如何转化为char*呢? 串口转modem口的通信问题. 怎样修改注册表中的键值? 关于向word文档中插入activex控件的问题!!!大家帮帮忙!! 如果自己创建一个类,在这个类中想调用当前CXXVIEW类中的函数该如何办?
m_pset.CreateInstance("ADODB.Recordset");
CString strSQL;
strSQL.Format("select distinct * table1 group by field1");
m_pset->Open(_variant_t(strSQL),
_variant_t((IDispatch*)g_pDBConnect,true),
adOpenStatic,
adLockOptimistic,
adCmdText);
参数要用adCmdText,而不是adCmdTable你哪里出错了?错误提示和代码是怎样的啊?
adOpenStatic, adLockOptimistic, adCmdText);就是查询出来的记录集为空
ADO肯定支持了,不过要看你的数据库支不支持了,不过一般数据库都支持
m_pConnection->put_CommandTimeout(5);
HRESULT hr = m_pConnection->Open(_bstr_t(szConnectString),_bstr_t(""),_bstr_t(""),-1);
_bstr_t source("driver={sqloledb};Server=svrname;DATABASE=Northwind;UID=sa;PWD=");
_bstr_t user("admin");
_bstr_t pwd("");
try{
hr=m_connection.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(hr))
hr=m_connection->Open(source,user,pwd,16);
else
MessageBox("Connection Error");
if(SUCCEEDED(hr))
hr=m_recordset.CreateInstance(_uuidof(Recordset));
else
MessageBox("Open Error");
if(SUCCEEDED(hr))
m_fConnected=TRUE;
else
m_fConnected=FALSE;
}
catch(_com_error &e)
{
// MessageBox(e.ErrorMessage());
AfxMessageBox(e.Description());
m_fConnected=FALSE;
}
if(!m_fConnected)
MessageBox("ADO数据源初始化失败");