CString ppstr;
ppstr="LX='"+m_pp+"'";
m_recordSet.m_strFilter=ppstr;
m_recordSet.Open();
时没问题,但我用以下语句想同时过滤两个条件时
CString ppstr;
ppstr="PP='"+m_pp+"'"+"&&LX='"+m_gn+"'";
m_recordSet.m_strFilter=ppstr;
m_recordSet.Open();
系统报错:语法错误(操作符丢失)在查询表达式'PP='IBM'&&LX='图形''中
各位大虾帮帮忙,怎么样用记录集进行多个条件的查询呢
4 个解决方案
#1
你不会用and 把他连接起来吗?
ppstr="PP='"+m_pp+"'"+"and "+"&&LX='"+m_gn+"'";
ppstr="PP='"+m_pp+"'"+"and "+"&&LX='"+m_gn+"'";
#2
是呀,标准的SQL语句都可以用的。
#3
给一个我做过的例子,我可是测试过的!
sprintf(buff2,"Date = '%04d-%02d-%02d' AND ",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay()-1);
sprintf(buff,"StartTime >= '%02d:00:00' AND StartTime <= '%02d:59:59'",nTemp,nTemp);
sprintf(buff3," AND ChannelNumber = %1d",i);
// 查询报警事件记录
CAlarmInfo myAlarmEvent(pDatabase);
// 过滤当前日期的当前时间的前一个小时的事件记录集
myAlarmEvent.m_strFilter = buff2;
myAlarmEvent.m_strFilter += buff;
myAlarmEvent.m_strFilter.Insert(1000,buff3);
myAlarmEvent.Open(CRecordset::snapshot,"AlarmInfo");
sprintf(buff2,"Date = '%04d-%02d-%02d' AND ",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay()-1);
sprintf(buff,"StartTime >= '%02d:00:00' AND StartTime <= '%02d:59:59'",nTemp,nTemp);
sprintf(buff3," AND ChannelNumber = %1d",i);
// 查询报警事件记录
CAlarmInfo myAlarmEvent(pDatabase);
// 过滤当前日期的当前时间的前一个小时的事件记录集
myAlarmEvent.m_strFilter = buff2;
myAlarmEvent.m_strFilter += buff;
myAlarmEvent.m_strFilter.Insert(1000,buff3);
myAlarmEvent.Open(CRecordset::snapshot,"AlarmInfo");
#4
呵呵,问题已经解决了,把&&换成and即可
#1
你不会用and 把他连接起来吗?
ppstr="PP='"+m_pp+"'"+"and "+"&&LX='"+m_gn+"'";
ppstr="PP='"+m_pp+"'"+"and "+"&&LX='"+m_gn+"'";
#2
是呀,标准的SQL语句都可以用的。
#3
给一个我做过的例子,我可是测试过的!
sprintf(buff2,"Date = '%04d-%02d-%02d' AND ",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay()-1);
sprintf(buff,"StartTime >= '%02d:00:00' AND StartTime <= '%02d:59:59'",nTemp,nTemp);
sprintf(buff3," AND ChannelNumber = %1d",i);
// 查询报警事件记录
CAlarmInfo myAlarmEvent(pDatabase);
// 过滤当前日期的当前时间的前一个小时的事件记录集
myAlarmEvent.m_strFilter = buff2;
myAlarmEvent.m_strFilter += buff;
myAlarmEvent.m_strFilter.Insert(1000,buff3);
myAlarmEvent.Open(CRecordset::snapshot,"AlarmInfo");
sprintf(buff2,"Date = '%04d-%02d-%02d' AND ",CurTime.GetYear(),CurTime.GetMonth(),CurTime.GetDay()-1);
sprintf(buff,"StartTime >= '%02d:00:00' AND StartTime <= '%02d:59:59'",nTemp,nTemp);
sprintf(buff3," AND ChannelNumber = %1d",i);
// 查询报警事件记录
CAlarmInfo myAlarmEvent(pDatabase);
// 过滤当前日期的当前时间的前一个小时的事件记录集
myAlarmEvent.m_strFilter = buff2;
myAlarmEvent.m_strFilter += buff;
myAlarmEvent.m_strFilter.Insert(1000,buff3);
myAlarmEvent.Open(CRecordset::snapshot,"AlarmInfo");
#4
呵呵,问题已经解决了,把&&换成and即可