初次使用 odbc编程,请高手帮个忙教小弟如何进行select查询??

解决方案 »

  1.   

    连接数据库
    定义一个语句
    excutesql
      

  2.   

    //ODBC open SQL server database
    CDatabase db;
    db.OpenEx("DRIVER={SQL Server};Server=Cell;DATABASE=zhg;UID=sa;PWD=;");//change Cell to your computer name
    //change zhg to your database name
    CRecordset rs(&db);
    rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select type,AVG(price)'average price' From title  where type<>'business' group by type");
    while(rs.IsEOF()==false)
    {
    CString str;
    CString strtype;
    rs.GetFieldValue((short)0,strtype);
    CDBVariant varprice;
    rs.GetFieldValue(1,varprice);
    str.Format("type:%s,avg(price):%f",strtype,varprice.m_dblVal);
    AfxMessageBox(str);
    rs.MoveNext();
    }
    rs.Close();
    db.Close();
    //Open ms access database
    CDatabase db;
    db.OpenEx("Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\temp\\db1.mdb;");
    CRecordset rs(&db);
    rs.Open(AFX_DB_USE_DEFAULT_TYPE,"select * From table1");
    int nfieldcount=rs.GetODBCFieldCount();
    CString msg;
    msg.Format("There are %d fields in table1",nfieldcount);
    AfxMessageBox(msg);
    //field 0 is int field,name "intfield",retrieve by field index
    CDBVariant dbvar;
    rs.GetFieldValue((short)0,dbvar);
    //field 1 is string field,name "strfield",retrieve by field name
    CString dbstrvar;
    rs.GetFieldValue("strfield",dbstrvar);
    msg.Format("field 0 value:%d,field name strfield value=%s",dbvar.m_iVal,dbstrvar);
    AfxMessageBox(msg);
    rs.Close();
    db.Close();