| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1221 人关注过本帖
标题:提出最新几条信息用存储过程,加top为什么不行??(怎么加了个条件又不行了?急 ...
取消只看楼主 加入收藏
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
 问题点数:0 回复次数:6 
提出最新几条信息用存储过程,加top为什么不行??(怎么加了个条件又不行了?急呀)

create proc info
@topsl int
as
declare @s varchar(5000)
begin
set @s='SELECT top '+@topsl+' * from users order by id desc'
exec (@s)
end
go


前台调用:
set rs = server.createobject("adodb.recordset")
rs.Open " exec info 5",conn,1,1


以上代码无法运行,


但是下面这种情况就能通行:
create proc info
as
declare @s varchar(5000)
begin
set @s='SELECT top 7 * from users order by id desc'
exec (@s)
end
go

前台调用:
set rs = server.createobject("adodb.recordset")
rs.Open " exec info ",conn,1,1


为什么加了个top变量就不行了呢??我那里有错误吗???


最新问题:
create proc info
@rdp varchar(50),
@topsl varchar
as
declare @s varchar(5000)
begin
set @s='SELECT top
'+@topsl+' * from users where rdp= '+@rdp+' order by id desc'
exec (@s)
end
go

前台调用:
dim rdp
rdp="北京"
set rs = server.createobject("adodb.recordset")
rs.Open " exec info '"&rdp&"','5'",conn,1,1

top是对了,但加了个条件又不行了,我开始是有条件的没有top就通行了,现在有条件又有top怎么又不行了

[此贴子已经被作者于2007-4-18 8:16:48编辑过]

搜索更多相关主题的帖子: top 条件 
2007-04-17 17:48
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 



人才呀,呵呵

为什么呢,他明明是整型的嘛,我给个定个int,这样为什么不对呢?


想学 .Net 了
2007-04-17 18:01
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 

后台经过调试;下面这种能就能行,为什么会这样呢? 我多加了二个''就能行了,这是为什么???
而top那里不是'++'的吗?为什么rdp那里就得'''++''',他们都是varchar呀,
我都有点晕了,谁能帮我解答一下,谢谢

create proc info
@rdp varchar(50),
@topsl varchar
as
declare @s varchar(5000)
begin
set @s='SELECT top '+@topsl+' * from users where rdp= '''+@rdp+''' order by id desc'
exec (@s)
end
go

前台调用:
dim rdp
rdp="北京"
set rs = server.createobject("adodb.recordset")
rs.Open " exec info '"&rdp&"','5'",conn,1,1

[此贴子已经被作者于2007-4-18 8:51:20编辑过]


想学 .Net 了
2007-04-18 08:17
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 
不是呀,前面定义了
@rdp varchar(50),
@topsl varchar


set @s='SELECT top '+@topsl+' * from users where rdp= '''+@rdp+''' order by id desc'

前台是当字符来处理的:
rs.Open " exec info '"&rdp&"','5'",conn,1,1


完全通过了,没报错,为什么??

想学 .Net 了
2007-04-18 09:27
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 
刚特意试了一下,如果是这样就会出错了:
set @s='SELECT top '''+@topsl+''' * from users where rdp= '''+@rdp+''' order by id desc'

想学 .Net 了
2007-04-18 09:34
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 
我知道,我是这样的写的了,但是有点想不明白??

为什么要用''',而有的地方就用一个'

能帮我解说一下吗?谢谢

想学 .Net 了
2007-04-18 10:52
yzwt2004
Rank: 1
等 级:新手上路
帖 子:472
专家分:0
注 册:2006-1-18
收藏
得分:0 
3Q


想学 .Net 了
2007-04-18 14:13
快速回复:提出最新几条信息用存储过程,加top为什么不行??(怎么加了个条件又不行 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031682 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved