CDatabase db;
db.OpenEx("DSN=datasource");//连接数据源datasource
CRecordset rs(&db);
rs.Open(AFX_DB_USE_DEFAULT_TYPE,_T("select * From 客户表"));
rs.GetFieldValue("客户代号",t[0]);//可以读取表中记录
         但接着如何添加记录?

解决方案 »

  1.   

    CDatabase::ExecuteSQL(...)
    执行添加一条记录的SQL语句
      

  2.   

    或者使用,简单的做法
    rs.AddNew();
    rs.SetFieldValue(...);//这里根据不同的情况写代码
    ...//继续给要写入数据的字段赋值
    //一般定义一个COleVariant变量来使用比较好,因为可以处理不同数据类型
    //如果都是文本的就用CString都可以,强制转换成LPCTSTR就行了
    //具体的参数看看MSDN,情况太多,没办法一一列出
    rs.Update();
      

  3.   

    请问txdxun
    'SetFieldValue' : is not a member of 'CRecordset'
      

  4.   

    要么你就用CDatabase.ExecuteSQL(...)
    要么就生成一个新类,以CRecordset为基类,
    当你在生成这个类的时候,他会让你选择一个Table(你在生成的时候就清楚了)假设你生成的这个新类叫CMyRs,
    那么CMyRs rs;
    你就可以
    rs.AddNew();
    rs.m_Field1=Value1;
    rs.m_Field2=Value2;
    rs.m_Field3=Value3;
    rs.Update();
    这样便可以了,但并不是简单的做法,我倒认为要麻烦一些。
      

  5.   

    用CDatabase.ExecuteSQL(...)可以具体点吗?

    谢了
      

  6.   

    已经很具体了。
    如果你是用ODBC那按第二种方法一步步来,
    我看是没问题的。
      

  7.   

    你写一个Addnew record的SQL语句,写好之后,再调用
    CString sql = "...";
    db.ExecuteSQL(sql)