select * from 表名 where 字段名 like '变量名'

解决方案 »

  1.   

    是这样的,我想得到满足两个条件的记录集。一个条件是某个字段的值不为NULL,另一个条件是某个字段的值与某个变量代表的值相等。不知道这样是否把我的问题说清楚了。
      

  2.   

    char strSQL[300];
    sprintf(strSQL,"select * from your_table where your_field=%d",strProd_id);
    ado_obj.execute(strSQL);上面只是示例,语法可能有一些问题
      

  3.   

    没说清楚,是字符串变量还是楼上说的整型变量
    整型就直接=,不是C++中的两个=
    字符串用LIKE匹配。
      

  4.   

    _variant_t RecordsAffected;
    CString strQuery;
    strQuery.Format("SELECT * FROM 表名 WHRER field1 LIKE '%s' AND field2 LIKE '%s'",str1,str2);
    m_pConnection->Execute((_bstr_t)strQuery,&RecordsAffected,adCmdText);
    试试看,不行再说。
      

  5.   

    以上execute执行的返回值是一个结果集。
      

  6.   

    _variant_t RecordsAffected;
    CString strQuery;
    strQuery.Format("SELECT * FROM 表名 WHRER field1 LIKE '%s' AND field2 is not null",str1); //field2是某个字段的值不为NULL
    m_pConnection->Execute((_bstr_t)strQuery,&RecordsAffected,adCmdText);
      

  7.   

    请问大侠返回的结果集可以赋给m_pRecordset么?
    (_RecordsetPtr m_pRecordset)
    那么m_pRecordset的Open语句怎样写呢?
    我用的是
    m_pRecordset->Open(("",_variant_t((IDispatch *)m_pConnection,TRUE),adOpenDynamic,adLockOptimistic,adCmdText);
    结果程序错误。请大侠指点。多谢了!
      

  8.   

    CString strQuery;
    strQuery.Format("SELECT * FROM 表名 WHRER field1 LIKE '%s' AND field2 is not null",str1); //field2是某个字段的值不为NULLm_pRecordset->Open((strQuery,_variant_t((IDispatch *)m_pConnection,TRUE),adOpenDynamic,adLockOptimistic,adCmdText);
      

  9.   

    small_wei大侠:
    我按您写的做了,但这样得到的记录集无法查询
    m_pRecordset->Open((_variant_t)strQuery,_variant_t((IDispatch *)m_pConnection,TRUE),adOpenDynamic,adLockOptimistic,adCmdText);
    这句没错
    m_pRecordset->MoveFirst();出现错误。
      

  10.   


    变量为字符型
    string strProd_id;"select * from yourtabl where field1 is not null and field2=''"+strProd_id+"''"如变量为数字,需要转为串
      

  11.   

    得到的记录集怎样查询呢?m_pRecordset->MoveFirst()为什么报错呢?
      

  12.   

    得到的记录集怎样查询呢?m_pRecordset->MoveFirst()为什么报错呢?
    是因为m_pRecordset->IsBOF()==TRUE
      

  13.   

    报错是因为没有查找到符合条件的记录,而你要强制MoveFirst()当然会出错了!应该在MoveFirst前添加:
    if(m_pRecordset->IsBOF())
    {
    m_pRecordset->Close();
    return;
    }
      

  14.   

    几位大侠说的对,的确是没有查到符合条件的纪录。我的查询语句如下:strSQL.Format("SELECT * FROM S_Item_Code_Componet WHERE  Position_Name LIKE '%s' AND '%s' is not null" ,strAssembly_pos,strAssembly_type);
    m_pRecordset->Open((_variant_t)strSQL,_variant_t((IDispatch *)m_pConnection,TRUE),adOpenDynamic,adLockOptimistic,adCmdText);
    strAssembly_type是一个字符串变量,我想用它代表一个字段名,请问大侠是否可以?
      

  15.   

    最后一个问题在另一个贴子中解决。多谢各位!结账了。small_wei在另一个贴子中也有分。