1,CRecordSet好像可以指定多个表吧!2,默认情况下CRecordSet类的成员变量名就是"m_"+字段名3,在两个对话框中分别处理你要添加数据的表对应的CRecordSet不就行了吗?

解决方案 »

  1.   

    I only can up you with the word!
      

  2.   

    to zy_9922:
      1.我是这样用的,但总是提示记录集是只读的,  2,可能老兄误解了,我是想获取字段名在对话框中输出  3但记录集指针不是下移了吗
      

  3.   

    1,看你有几个查询,如果是多个,则要创建多个recordset对象。
       
    2,m_recordset.GetODBCFieldInfo( i,  (CODBCFieldInfo fieldinfo ));fieldinfo.m_strName
    3,可以先将两个对话框的内容存在变量里,然后一起存入数据库。或者可以将记录集指针上移。
      

  4.   

    多个表的CRecordSet好象就是只读的,可能是不知道你要修改哪个表你应该知道你的表里的字段名吧,直接输出到对话框不就行了吗?记录集指针下移,你再给他移回去不就行了吗?//要不你就别用这个类了,我好象见过别人写的一些类,功能不错,
    忘了在什么地方,你可以查查!
      

  5.   

    建议用DAO方式,CDaoDataBase类和CDaoRecordSet类就可以搞定你的问题:
    com初始化:
        CoInitialize(NULL);
    打开数据库
    CDaoDatabase m_GDB;
    m_GDB.Open("TestDB.mdb");
    打开记录集:
             CString strSQL;
    strSQL = "SELECT * FROM  table1 ";
    CDaoRecordset* ThisRecordSet = new CDaoRecordset(&m_GDB);
    ThisRecordSet->Open(AFX_DAO_USE_DEFAULT_TYPE, strSQL);接下来就对每个字段根据类型转化取出值就可以了。执行SQL语句:
             CString strSQL;
    strSQL.Format("INSERT INTO table1 (id,var1,var2,var3,var4,dt) values (%i,'%i','%i','%i','%i',CDATE('%s'))",i,i,i,i,i,strTime);
    m_GDB.Execute(strSQL);你说的两个对话框对一个表操作,其实没有什么区别,只要你将SQL语句组织好了随便你怎么玩。
      

  6.   

    1、我以前就是为每一个表声明一个CRecordSet派生类(比如为CDBUser类)
    2、打开表后,用你声明的这各类的变量(CDBUser m_user)就可以引用字段,取出字段值m_user.m_username(假设username为CDBUser表中的字段)
    3、没太明白你的意思,是指写一条记录吗?如果是不同记录,就分别写入呗,如果是同一条记录,可以先写一个对话框的内容,然后再写另一个对话框的内容,Update一下数据库就可以了。
      

  7.   

    1.用ADO好了,RECORDSET可以描述所有的记录集。
    2.RECORDSET中有个FIELDS 的属性可以得到字段名。
    3.我想你没弄明白 你想问什么,楼上的说的对。
      

  8.   

    为每一个表声明一个CRecordSet是有毛病的,导致表不可修改
    告诉你一种方法,是我经过一个多月的时间搞出来的,
    如果你的数据原有多个表,你又想为每一个表声明一个CRecordSet,可以这样做:
    1.建一个工程,引入一个对应第一个表的CRecordSet派生类。
    2.再见一个工程,引入第二个表对应的CRecordSet派生类。
    3.把第二个表的派生类的.h和.cpp文件加到第一个工程
    4.这样在第一个工程中就可以修改第二个表了,而且两个表都有各自对应的类
    (我曾经比较过:
        在一个工程创建时建的CRecordSet派生类的.h文件比使New Class建的.h文件多4K)
      

  9.   

    用ADO好了
    简单而且速度快