注册 登录
编程论坛 SQL Server论坛

达人们再次救命啊

qisong123456 发布于 2008-07-25 17:23, 968 次点击
小弟遇到一个很头疼的问题如下
strSql.Format("select sum(sendbytes+recvbytes) from user_traffic where stattime>%d", m_preTime);
if(FALSE == g_dbWaitorBack.QueryDirect(strSql)){return;}每次都是直接return了;
SQL语句没问题的,在SQLSERVER中可以执行,但是QueryDirect(strSql)查询就不行了,QueryDirect()函数是自定义的查询函数,在其他地方调用都可以的,在这里就不行了
往达人们指点指点我
6 回复
#2
happynight2008-07-25 20:34
你用的是什么开发语言
#3
happynight2008-07-25 20:37
你后面的"d"是不是就是m_preTime的值,你说能正常运行的SQL你把那个贴上来看看,另外能不能把QueryDirect函数也贴上来
#4
qisong1234562008-07-25 20:51
恩,是啊,就是m_preTime的值,我用的VC,QueryDirect函数如下
long CDbWaitor::QueryDirect(CString strQuery)
{
    long    plState;
    try
    {
        pRecordset->get_State(&plState);
        if(plState == adStateOpen)
            pRecordset->Close();
        
        pRecordset->CursorLocation = adUseClient;
        pRecordset->Open(_bstr_t(strQuery),pConn.GetInterfacePtr,
            adOpenDynamic, adLockOptimistic,adAsyncFetch);
                }
    catch (_com_error &e)
    {    
        m_strLastErr.Format("%s",e.Description());
        return 0/*STAT_FAIL*/;    
    }
    catch (...)
    {
        return 0;
    }
    
    return 1;
}
成功的查询如下
    strSql.Format("select alarmGrade, alarmTime, ipaddr, name, alarmCond, alarmValue, "
        " affirmStatus, alarm_info.id, workedStatus from alarm_info, protocol "
        " where alarm_info.sevice=protocol.port "
        " order by alarm_info.id desc " );
    if(FALSE == g_dbWaitorBack.QueryDirect(strSql))
    {
        return;
    }
又得麻烦你了,呵呵,真不好意思
#5
happynight2008-07-25 21:00
呵呵 看的不是很明白,你最终的SQL语句是什么样的,你上面给的SQL语句和下面的好象大不相同,你第一条用的是">"后面的字段不同表也不同连WHERE条件也不同,运行那个函数是否出错,还是查询返回不了数据
#6
happynight2008-07-25 21:02
今天晚上还有点事,明天再说吧
#7
qisong1234562008-07-25 21:18
呵呵,好的,谢谢你了
1