CRecordSet 的奇怪现象
2006-03-22 20:58
155 查看
最近在维护一个较早的 C++ 项目时,发现在调用 CRecordSet 类的 Update() 方法时,居然会出现错误。跟踪进去发现在构造 SQL 语句时,AppendNameValues 生成的查询条件字符串变成了类似 "Field_XXX = ?" 的情况,非常奇怪。细究之下,如果是在 AddNew() 之后的 Update() 方法可以构造出正确的 SQL 语句。但是 Edit() 之后的 Update() 方法就会出现错误,实是有些莫名其妙。
无可奈何之下,只好不再使用 Update() 方法,改为手工构造 SQL 语句,再调用 CDatabase 的 ExecuteSQL 方法,算是暂时绕开了这个问题。
后来有同事发现,在调用 CRecordSet.Open 方法的时候,将 nOpenType 参数设定为 CRecordSet::dynaset 就可以解决这个问题,查看了一下源码,发现起先确实是用这个参数打开的,后来不知道何故被换成了 CRecordSet::snapshot,改动的地方没有注释。但是总体上还是有些不太明白,为何它只影响 UPDATE 的 SQL 语句呢?
无可奈何之下,只好不再使用 Update() 方法,改为手工构造 SQL 语句,再调用 CDatabase 的 ExecuteSQL 方法,算是暂时绕开了这个问题。
后来有同事发现,在调用 CRecordSet.Open 方法的时候,将 nOpenType 参数设定为 CRecordSet::dynaset 就可以解决这个问题,查看了一下源码,发现起先确实是用这个参数打开的,后来不知道何故被换成了 CRecordSet::snapshot,改动的地方没有注释。但是总体上还是有些不太明白,为何它只影响 UPDATE 的 SQL 语句呢?
相关文章推荐
- Windows Phone 奇怪现象之ListBox在WP8能载入数据在WP7.x不能
- 在线HTML编辑器在IE下的奇怪现象
- 和大华电子称通讯的奇怪现象-不能关闭Socket客户端的连接
- 在使用uiwebview时出现一个奇怪现象
- session 存放对象变量,及遇到的奇怪现象
- php for 循环a到z为什么会出现这么奇怪的现象?
- Java String中split的奇怪现象
- table标签里插入form标签的奇怪现象
- 奇怪现象,视图里有数据却读不出
- WebService里奇怪的参数值偏移现象?
- ExtJS 和 smarty 配套使用时出现的奇怪现象(已解决)
- CEikEdwin 与 CPAlbImageViewerBasic 在Symbian 2nd上的奇怪现象
- Firefox下样式设置宽度奇怪现象
- oracle没有创建dump目录的奇怪现象
- 如何解释这个ASP.NET的IsClientConnected奇怪的现象?
- ISA 2006之奇怪现象
- 你可能从来没有遇到的Oracle奇怪现象
- 奇怪的GPS接收数据现象
- 百度收录网站奇怪现象
- 关于SQL Server自动备份无法删除过期的备份文件奇怪现象