设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3549|回复: 7
打印 上一主题 下一主题

关于在adp中执行存储过程的问题

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-13 05:04:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有一存储过程如下:

create procedure tt

as

create table #kk(names char(50))

insert into #kk(names) values('jim')

select * from #kk

---------------

这个存储过程在sql查询分析器中可以返回记录.但在ADP中却无法返回记录.只是显示,存储过程执行成功,还是无法返回记录,   那我岂不是不能用这个查询作为窗体的记录源(不用临时表,用正式的表也不行),会不会是ADP的功能有限.我真的很想

用临时表作为窗体的记录源.这样把ADP发放到客户端时,就不会因表同名而冲突了.  本人也试了好几个就是不行.对ACCESS与SQL 2000的结合都快没信心了.不是说ACCESS不错吗.在这方面上真的不行,不过我不会恢心的.应该可以调用吧.唉.............................................................................[em06]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-6-14 16:32:00 | 只看该作者
用临时表恐怕不行,用普通表应该行的。

点击这里给我发消息

3#
发表于 2006-6-15 18:51:00 | 只看该作者
create procedure tt
as
-- 启用
SET NOCOUNT ON
create table #kk(names char(50))
insert into #kk(names) values('jim')
-- 关闭
SET NOCOUNT OFF

select * from #kk

这是T-SQL的奥秘

在T-SQL的批处理或存储过程中,使用了多个SELECT查询,SET NOCOUNT ON|OFF 是用来返回结果集数量的一个控制。

T-SQL功能非常强大,建议多学习。



呵呵,再试试

[此贴子已经被作者于2006-6-15 10:58:32编辑过]

4#
发表于 2006-6-15 19:23:00 | 只看该作者
我碰到过,返回的结果集看到记录行,但看不到字段,并不影响操作。

不知道什么原因。

点击这里给我发消息

5#
发表于 2006-6-15 19:47:00 | 只看该作者
事实上在查询分析器中运行存储过程或批处理,如果没有Set NOCOUNT语句,它会显示所有的记录集,而在客户端同样反映出来,对应多个Recordset,而没有显示的原因,是设计时的字段不匹配以及记录集顺序不对。

一般窗体只接受第一个记录集,而在有多个记录返回的存储过程中,我们通常需要的是最后一个记录集。因此我们需要使用 SET NOCOUNT 语句来限制输出记录集的个数,这样,我们才能看到我们想要的结果。
6#
发表于 2006-6-15 22:17:00 | 只看该作者
但当时是只有一个记录集

点击这里给我发消息

7#
发表于 2006-6-16 02:50:00 | 只看该作者
以下是引用tz-chf在2006-6-15 14:17:00的发言:
但当时是只有一个记录集

应该不止一个SQL语句吧?是否有Insert、Update、Delete等语句?不止Select会产生记录集,这些语句都会。
8#
 楼主| 发表于 2006-6-23 04:35:00 | 只看该作者
谢谢大家的帮助,祝大家工作生活愉快.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-2 03:36 , Processed in 0.089177 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表