MFC+MSSQL 查询表和查询视图结果居然不一样?求大神指点迷津

polaris1121 2018-01-11 12:08:03
问题描述:
通过下面的方法去获取数据集,一直没有问题。
m_pRecordset->Open(_bstr_t(Tsql), m_pConnection.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdText);

后来为了降低耦合度,避免其他项目组修改表结构影响我代码的修改。
于是就将查询语句创建成视图,我这边则从视图中获取信息。

发现如下情况
1.如果视图通过界面进行设计创建,MFC 代码open能够正常获取视图结果。测试的表比较简单
2.如果视图通过sql语句进行创建,MFC代码open不能获取结果。sql语句在MSSQL中执行没有问题。将adOpenStatic改为动态的也还是不行
3.如果将创建视图的语句直接拿过来open执行,发现也不能获取结果。这就奇怪了。

2和3中用到的语句用到了for XML path这样的情况

请大神指点,这个是什么情况

通过在MSSQL中性能查看执行情况,发现有问题的时候,在sp_curorsopen时打不开游标地址。
没有问题的时候,有游标地址。

这个不清楚两种有什么区别。
...全文
517 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakwos 2019-05-09
  • 打赏
  • 举报
回复
因为你视图创建之后 涉及到的表结构可能修改过 手动刷新视图
赵4老师 2018-01-12
  • 打赏
  • 举报
回复
使用触发器?
赵4老师 2018-01-11
  • 打赏
  • 举报
回复
谁说“存储过程无法返回结果集”?!
worldy 2018-01-11
  • 打赏
  • 举报
回复
不要使用记录集open,使用cnn->Excute()方法试试
polaris1121 2018-01-11
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
使用存储过程。
而且今天早上也尝试了一下使用connect->execute的方式,也还是不行。 主要是看到官方网站上对于record ->open解释有下面一段描述(https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/open-method-ado-recordset):It is not a good idea to use the Source argument of the Open method to perform an action query that does not return records because there is no easy way to determine whether the call succeeded. The Recordset returned by such a query will be closed. To perform a query that does not return records, such as a SQL INSERT statement, call the Execute method of a Command object or the Execute method of a Connection object instead.
polaris1121 2018-01-11
  • 打赏
  • 举报
回复
嗯,没有其它招只能用存储过程了。 话说存储过程无法返回结果集?目前就想到新建表删表的方式来曲线救国了。不知道是什么原因哈。奇怪了。有大神了解熟悉的,希望不吝赐教啊
赵4老师 2018-01-11
  • 打赏
  • 举报
回复
使用存储过程。
polaris1121 2018-01-11
  • 打赏
  • 举报
回复
引用 4 楼 worldy 的回复:
不要使用记录集open,使用cnn->Excute()方法试试
引用 4 楼 worldy 的回复:
不要使用记录集open,使用cnn->Excute()方法试试
引用 4 楼 worldy 的回复:
不要使用记录集open,使用cnn->Excute()方法试试
尝试了也不行。多谢
polaris1121 2018-01-11
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
谁说“存储过程无法返回结果集”?!
哦,我想叉了。 想用视图主要是可以自动更新,存储过程处理起来就要麻烦很多。 自己再研究研究。 多谢多谢

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧