strSQL.Format("select * from person where ID=%d",m_ID);
CRecordset recset(&db);
recset.Open(CRecordset::forwardOnly, strSQL, CRecordset::readOnly);
if(recset.IsEOF())
MessageBox("无此人");
else
{
recset.GetFieldValue("DEPARTMENT",department);
recset.GetFieldValue("JOB",job);
strSQL.Format("update person set DEPARTMENT='%s',JOB='%s' where id=%d"
,m_DEPARTMENT,m_JOB,m_ID);

db.ExecuteSQL(strSQL);
strSQL="insert into person(ID,YUANDEPARTMENT,NEWDEPARTMENT,YUANJOB,NEWJOB) values ('"+m_ID+"','department','"+m_DEPARTMENT+"','job','"+m_JOB+"')";前面定义了STRING  department job   但是执行时候说cannot add two pointers的错误,菜鸟一个,请问大家字符串的变量应该怎么写到里面, 谢谢大家了

解决方案 »

  1.   

    // Create and open a database object;
    // do not load the cursor library
    CDatabase db;
    db.OpenEx( NULL, CDatabase::forceOdbcDialog );// Create and open a recordset object
    // directly from CRecordset. Note that a
    // table must exist in a connected database.
    // Use forwardOnly type recordset for best
    // performance, since only MoveNext is required
    CRecordset rs( &db );
    rs.Open( CRecordset::forwardOnly,
             _T( "SELECT * FROM SomeTable" ) );// Create a CDBVariant object to
    // store field data
    CDBVariant varValue;// Loop through the recordset,
    // using GetFieldValue and
    // GetODBCFieldCount to retrieve
    // data in all columns
    short nFields = rs.GetODBCFieldCount( );
    while( !rs.IsEOF( ) )
    {
       for( short index = 0; index < nFields; index++ )
       {
          rs.GetFieldValue( index, varValue );
          // do something with varValue
       }
       rs.MoveNext( );
    }rs.Close( );
    db.Close( );
    MSDN上的例子
      

  2.   

    问题应该是出在这句:
    strSQL="insert into person(ID,YUANDEPARTMENT,NEWDEPARTMENT,YUANJOB,NEWJOB) values ('"+m_ID+"','department','"+m_DEPARTMENT+"','job','"+m_JOB+"')";将=号后面的强制类型转换一下试试。
    你的STRING可能是TCHAR*的。
      

  3.   

    strSQL=CString("insert into person(ID,YUANDEPARTMENT,NEWDEPARTMENT,YUANJOB,NEWJOB) values ('")+m_ID+"','department','"+m_DEPARTMENT+"','job','"+m_JOB+"')";
      

  4.   

    和UPDATE一样用Format实现不是挺好的?
      

  5.   

    先确认变量m_ID,m_DEPARTMENT,m_JOB都是CString类形的变量,而不是char*类型字符指针。
    编译器就是提示你把两个字符串指针进行相加了。