我用CDatabase和CRrecordset连接数据库、读取和写入数据。
对于读取数据很容易,CRecordset::GetFieldValue()函数可以直接搞定,对于一行的fetch:
但是如果要修改数据,只能对要修改的每个表都生成继承CRecordset的类,然后调用CRecordset::Edit()和CRecordset:AddNew,修改每个值,然后Update。大家有没有什么好办法,直接使用CRecordset或者只生成几个可以通用的继承CRecordset的类,实现数据的修改?对于多行fetch:
要修改数据就更难了,CRecordset:Edit(),CRecordset:AddNew都不能用,MSDN说可以调用SQLSetPos函数实现,并给了一个例子说明DBFETCH,但是该例子只能演示读取数据,没有说明如何更改数据。大家如何使用该例中CBulkRecordsetMod类的下面三个函数?我该了多次没有成功。
virtual BOOL RowsetUpdate(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE);
virtual BOOL RowsetAdd(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE);
virtual BOOL RowsetDelete(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE);我的电子邮件:[email protected]
急盼各位达人帮助!
对于读取数据很容易,CRecordset::GetFieldValue()函数可以直接搞定,对于一行的fetch:
但是如果要修改数据,只能对要修改的每个表都生成继承CRecordset的类,然后调用CRecordset::Edit()和CRecordset:AddNew,修改每个值,然后Update。大家有没有什么好办法,直接使用CRecordset或者只生成几个可以通用的继承CRecordset的类,实现数据的修改?对于多行fetch:
要修改数据就更难了,CRecordset:Edit(),CRecordset:AddNew都不能用,MSDN说可以调用SQLSetPos函数实现,并给了一个例子说明DBFETCH,但是该例子只能演示读取数据,没有说明如何更改数据。大家如何使用该例中CBulkRecordsetMod类的下面三个函数?我该了多次没有成功。
virtual BOOL RowsetUpdate(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE);
virtual BOOL RowsetAdd(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE);
virtual BOOL RowsetDelete(WORD wRow, WORD wLockType = SQL_LOCK_NO_CHANGE);我的电子邮件:[email protected]
急盼各位达人帮助!
谢谢,handsomerun(毛毛),再等等,看别人有没有什么好办法,等明天就结题给分!:)
Status value Description
SQL_ROW_SUCCESS The row is unchanged.
SQL_ROW_UPDATED The row has been updated.
SQL_ROW_DELETED The row has been deleted.
SQL_ROW_ADDED The row has been added.
SQL_ROW_ERROR The row is unretrievable due to an error.
SQL_ROW_NOROW There is no row that corresponds to wRow.