请教大家,有一个sql语句。
先构造要查询的语句:
CString m_strQuery = "select a.StartTime,'c'=(select sum(b.Number) from TableName b where b.StartTime<=a.MeetingStartTime and b.EndTime >=a.StartTime ";
m_strQuery +="and b.Type ='IPConf'and b.StartTime>'2009-04-10') from TableName a where a.StartTime>=convert(datetime,convert(varchar(20),dateadd(dd,-1,getdate()),111)) ";
m_strQuery +="and a.StartTime<convert(datetime,convert(varchar(20),getdate(),111)) and a.Type ='IPConf' group by a.StartTime order by c DESC"; 打开查询:
m_pRecordset->Open(_bstr_t(m_strQuery), _variant_t((IDispatch *) m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText) ;
错误信息是:IDispatch error #31051. 直接用这句在SQL Advantage里查询没问题,可以出结果。2. 程序里换一个短一点的语句,编译后没问题。请教大家,是不是ADO查询语句不能太长呢,还是程序中我这句有什么问题呢,谢谢!
先构造要查询的语句:
CString m_strQuery = "select a.StartTime,'c'=(select sum(b.Number) from TableName b where b.StartTime<=a.MeetingStartTime and b.EndTime >=a.StartTime ";
m_strQuery +="and b.Type ='IPConf'and b.StartTime>'2009-04-10') from TableName a where a.StartTime>=convert(datetime,convert(varchar(20),dateadd(dd,-1,getdate()),111)) ";
m_strQuery +="and a.StartTime<convert(datetime,convert(varchar(20),getdate(),111)) and a.Type ='IPConf' group by a.StartTime order by c DESC"; 打开查询:
m_pRecordset->Open(_bstr_t(m_strQuery), _variant_t((IDispatch *) m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText) ;
错误信息是:IDispatch error #31051. 直接用这句在SQL Advantage里查询没问题,可以出结果。2. 程序里换一个短一点的语句,编译后没问题。请教大家,是不是ADO查询语句不能太长呢,还是程序中我这句有什么问题呢,谢谢!
{}
catch(_com_error& e)
{
e.Description();
}
ODBC 驱动程序不支持所需的属性。请帮忙分析下是什么原因
{
hr = m_pConnection.CreateInstance("ADODB.Connection");
if (SUCCEEDED(hr))
{
CString strConnect;
strConnect.Format("Driver={Sybase System 11};Srvr='%s';Uid='%s';Pwd='%s';DB='%s'",szServerName,szUserName,szUserPwd,szDatabaseName);
hr = m_pConnection->Open(strConnect.AllocSysString(),"","",adModeUnknown);
bSuccess = true;
}
}
catch (_com_error e)
{
if (m_pConnection->State)
m_pConnection->Close();
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息%s",e.ErrorMessage());
AfxMessageBox(errormessage);
}
m_pRecordset = m_pConnection->Execute((_bstr_t)m_strQuery,&RecordsAffected,adCmdText); 换成这样查询,提示是:[INTERSOLV][ODBC SQL Server driver][SQL Server]ct_connect(): user api layer: internal Client Library error: Read from the server has timed out 高手请帮忙。