怎样CRecordset方法修改一行记录的某个字段的值?(求救)急!

时间:2022-06-12 14:26:43
如果不用app   wizard,我如何将一个表和一个CRecordset类的对象绑定呢?假设odbc的数据库为datebasetest,生成一个CRecordset对象m_testset指向表test,如何对里面的列操作呢?假设有列student和student_no,现要想将表中第三行的student字段的值改为“a",应该怎样操作?(得到它的值可以用GetFieldValue函数,可是修改值却没有相应的函数)
CDatabase  db;
CRecordset m_testset;
db.OpenEx( _T( "DSN=MyKetiData" ));
 m_testset.m_pDatabase=&db;
m_testset.Open(CRecordset::snapshot , _T( "Select * from test" ));
m_testset.Move(2);

要想将student字段的值改为“a”,接下来应该怎样写呢?各位大虾帮帮看

不明白为什么在m_testset的下拉成员函数列表里没有关于列的数据成员,但用app   wizard生成CRecordset类的时候,类的对象的下拉成员函数列表里却是有关于列的数据成员,哪位大虾知道的话请指教。谢谢了 !!
由于我要操作多个表(30多个),为每个表都实现一个CRecordset对象太麻烦,所以采用了上面的方法。

7 个解决方案

#1


CRecordset对象没有成员函数SetFieldValue,但CDaoRecordset对象有成员函数CDaoRecordset,可我用的ODBC数据访问方法

#2


m_setXXXX->Edit();
m_setXXXX->m_str字段名 = "1111";
m_setXXXX->Update();

#3


如果不用app   wizard,我如何将一个表和一个CRecordset类的对象绑定呢?

如果你要自己写的话需要自己添加每个字段对应的成员变量,同时在DoFieldExchange中将每个成员变量和字段连接起来。
GetDefaultSQL中指明表名,GetDefaultConnect指明DSN名,或者你在open之前给m_pDatabase指针付值。

#4


首先,谢谢3楼!

“如果不用app   wizard,我如何将一个表和一个CRecordset类的对象绑定呢? 

如果你要自己写的话需要自己添加每个字段对应的成员变量,同时在DoFieldExchange中将每个成员变量和字段连接起来。 
GetDefaultSQL中指明表名,GetDefaultConnect指明DSN名,或者你在open之前给m_pDatabase指针付值。 ”


我初学VC,对你的思路,我不知道具体该怎么做,能不能给出具体点的方法和代码。十分感谢!!

#5


你用class   wizard自动生成一个CRecordset类,看一下它的成员函数和成员变量就明白了

#6


http://www.vckbase.com/
搜索odbc学习

#7


CDatabase  db; 
CRecordset m_testset; 
db.OpenEx( _T( "DSN=MyKetiData" )); 
CString strSql;
strSql=_T("Update test set student='a' where student_no=第3行的Number");
db.ExecuteSQL(strSql);

#1


CRecordset对象没有成员函数SetFieldValue,但CDaoRecordset对象有成员函数CDaoRecordset,可我用的ODBC数据访问方法

#2


m_setXXXX->Edit();
m_setXXXX->m_str字段名 = "1111";
m_setXXXX->Update();

#3


如果不用app   wizard,我如何将一个表和一个CRecordset类的对象绑定呢?

如果你要自己写的话需要自己添加每个字段对应的成员变量,同时在DoFieldExchange中将每个成员变量和字段连接起来。
GetDefaultSQL中指明表名,GetDefaultConnect指明DSN名,或者你在open之前给m_pDatabase指针付值。

#4


首先,谢谢3楼!

“如果不用app   wizard,我如何将一个表和一个CRecordset类的对象绑定呢? 

如果你要自己写的话需要自己添加每个字段对应的成员变量,同时在DoFieldExchange中将每个成员变量和字段连接起来。 
GetDefaultSQL中指明表名,GetDefaultConnect指明DSN名,或者你在open之前给m_pDatabase指针付值。 ”


我初学VC,对你的思路,我不知道具体该怎么做,能不能给出具体点的方法和代码。十分感谢!!

#5


你用class   wizard自动生成一个CRecordset类,看一下它的成员函数和成员变量就明白了

#6


http://www.vckbase.com/
搜索odbc学习

#7


CDatabase  db; 
CRecordset m_testset; 
db.OpenEx( _T( "DSN=MyKetiData" )); 
CString strSql;
strSql=_T("Update test set student='a' where student_no=第3行的Number");
db.ExecuteSQL(strSql);