先前发过一个帖子,得到某一字段的最大奇偶数,SQL语句这么写
select max(col) from TB where col%2=0   ---偶数
select max(col) from TB where col%2=0   ---奇数
在SQL-Server 查询分析器中运行也是正确的。
但是我在我的MFC程序中断点调试这个语句就是执行不过
代码片段如下:
CString tablename = "test";
strSQL = "SELECT MAX(里程) FROM " + tablename + " WHERE 里程%2=0";
m_pCommand ->CommandText = (LPCSTR)_bstr_t(strSQL);
m_pRecordset = m_pCommand ->Execute(NULL, NULL, adCmdText);断点设在最后一行,运行不过去。
这是为啥子呢????
在VC中执行SQL语句,到底用什么方式比较好呢?

解决方案 »

  1.   

    直接使用m_pRecordset 对象打开读取就可以了,你没必要使用m_pCommand
      

  2.   

    pRecordset.CreateInstance (_uuidof(Recordset));
    pRecordset->Open((_bstr_t)strSQL ,_variant_t((IDispatch*)pConnection,true),
    adOpenDynamic,adLockOptimistic,adCmdUnspecified);
      

  3.   

    m_pCommand.CreateInstance(__uuidof(Command));
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    m_pCommand->ActiveConnection = m_pConnection;
    都有吧?
      

  4.   

    把sql语句放到Access中执行一下,看能否支持
      

  5.   

    还有最重要的         // 初始化OLE/COM库环境 
    ::CoInitialize(NULL);
      

  6.   

    先前发过一个帖子,得到某一字段的最大奇偶数,SQL语句这么写 
    select max(col) from TB where col%2=0  ---偶数 
    select max(col) from TB where col%2=1  ---奇数
    你0和1都分写错了??
      

  7.   

    这些肯定是有的,其他SQL语句可以执行,但是这句不行啊!!!
      

  8.   

    strSQL = "SELECT MAX(里程) FROM " + tablename + " WHERE [里程]%2=0";
    m_pCommand ->CommandText = (LPCSTR)_bstr_t(strSQL);
    m_pRecordset = m_pCommand ->Execute(NULL, NULL, adCmdText);