对于读取数据很容易,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);
我的电子邮件:hmxie@qq.com
急盼各位达人帮助!
5 个解决方案
#1
修改,添加数据,可以用update和insert的sql语句来进行
这样,就能实现你所说的,多行更新
这样,就能实现你所说的,多行更新
#2
在VC中直接执行sql语句非常方便........
#3
唉,如果没有其它的方法,那就只能直接调用SQL语句了!
#4
其实直接调sql语句,效率高多了
#5
的确是这样,我前几天看了一篇英文文档也这么说。
我现在要做的功能是这样的,检索出满足条件的记录(可能一条或多条),然后用Grid控件显示出来,让用户浏览、添加、修改或删除。如果直接用SQL语句,我必须跟踪用户的操作,才能知道要更新那些数据,我想这样实现起来应该比较困难,代价也比较大。
但是如果用CRecordset类,可以通过得到行状态(GetRowStatus),这样应该简单一些。
谢谢,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.
我现在要做的功能是这样的,检索出满足条件的记录(可能一条或多条),然后用Grid控件显示出来,让用户浏览、添加、修改或删除。如果直接用SQL语句,我必须跟踪用户的操作,才能知道要更新那些数据,我想这样实现起来应该比较困难,代价也比较大。
但是如果用CRecordset类,可以通过得到行状态(GetRowStatus),这样应该简单一些。
谢谢,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.
#1
修改,添加数据,可以用update和insert的sql语句来进行
这样,就能实现你所说的,多行更新
这样,就能实现你所说的,多行更新
#2
在VC中直接执行sql语句非常方便........
#3
唉,如果没有其它的方法,那就只能直接调用SQL语句了!
#4
其实直接调sql语句,效率高多了
#5
的确是这样,我前几天看了一篇英文文档也这么说。
我现在要做的功能是这样的,检索出满足条件的记录(可能一条或多条),然后用Grid控件显示出来,让用户浏览、添加、修改或删除。如果直接用SQL语句,我必须跟踪用户的操作,才能知道要更新那些数据,我想这样实现起来应该比较困难,代价也比较大。
但是如果用CRecordset类,可以通过得到行状态(GetRowStatus),这样应该简单一些。
谢谢,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.
我现在要做的功能是这样的,检索出满足条件的记录(可能一条或多条),然后用Grid控件显示出来,让用户浏览、添加、修改或删除。如果直接用SQL语句,我必须跟踪用户的操作,才能知道要更新那些数据,我想这样实现起来应该比较困难,代价也比较大。
但是如果用CRecordset类,可以通过得到行状态(GetRowStatus),这样应该简单一些。
谢谢,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.