请教一下这句SQL语句怎么写

xiangzhang1983 2008-03-21 11:20:17
有以下一段ASP代码
<%
dim con, rs
dim sql
dim id1
id1=Request.QueryString("id")
set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={SQL Server};Server=(local);UID=sa;PWD=;"&_
"Database=fzgl" '打开数据库连接
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType=adOpenStatic
sql="select Top'"&id1&"' * from fqpzdj order by id desc"
rs.open sql,con
%>
意思是查找前N条记录,N是个变量,即'"&id1&"',说我这句SQL语句有错误,应该怎么改啊?谢谢!
...全文
122 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
MissStar 2008-03-28
...基础了点..
回复
只能说你粗心大意
又不是难题
回复
他只是把你的为空的情况过滤了
回复
xiangzhang1983 2008-03-23
net_lover 的答案是正确的,不愧是专家,爱死net_lover 了
回复
chinastorm 2008-03-21
用conn.execute(sql)这种方法
回复
cnchart 2008-03-21
只能是

select top 3 from table

而不能是

select top '3' from table
回复
hookee 2008-03-21
上面的少了个空格

<%
dim con, rs
dim sql
dim id1
id1 = Request.QueryString("id")
set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={SQL Server};Server=(local);UID=sa;PWD=;"&_
"Database=fzgl" '打开数据库连接
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
sql= "select Top " & id1 & " * from fqpzdj order by id desc"
rs.open sql,con,1,1
...
%>
回复
id1
你必须有值

比如你
在1.asp里有一代码:

<a href=2.asp?num=50>看看</a>

2.asp里的SQL语句应该是
sql="select Top "&request("num")&" * from fqpzdj order by id desc"
不能使用单引号
你的使用了单引号
回复
cnchart 2008-03-21
sql="select Top'"&id1&"' * from fqpzdj order by id desc"


要加单引号吗?

去掉它,换成空格
回复
hookee 2008-03-21

<%
dim con, rs
dim sql
dim id1
id1 = Request.QueryString("id")
set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={SQL Server};Server=(local);UID=sa;PWD=;"&_
"Database=fzgl" '打开数据库连接
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
sql= "select Top" & id1 & " * from fqpzdj order by id desc"
rs.open sql,con,1,1
...
%>

回复
myvicy 2008-03-21
sql="select Top "&id1&" * from fqpzdj order by id desc"
数字两边不要带'
回复
[Quote=引用 12 楼 xiangzhang1983 的回复:]

改成以下两个
sql="select Top " & id1 & " * from fqpzdj order by id desc"
sql="select Top "&id1&" * from fqpzdj order by id desc"
还是出现
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '*' 附近有语法错误。
[/Quote]

如果你ID1没有值肯定要出错
回复
孟子E章 2008-03-21
If IsNumeric(id1 ) = false Then
id1 = 10
Else
id1 = CLng(id1)
End If
sql="select Top " & CStr(id1) & " * from fqpzdj order by id desc"
回复
myvicy 2008-03-21
<%
dim con, rs
dim sql
dim id1
id1=Request.QueryString("id")
set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={SQL Server};Server=(local);UID=sa;PWD=;"&_
"Database=fzgl" '打开数据库连接
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType=adOpenStatic
sql="select Top "&id1&" * from fqpzdj order by id desc"
response.write sql
response.end '输出sql看看,把这个sql拷贝到数据库里去测试,正确后可以把这两句去掉
rs.open sql,con
%>
回复
xiangzhang1983 2008-03-21

改成以下两个
sql="select Top " & id1 & " * from fqpzdj order by id desc"
sql="select Top "&id1&" * from fqpzdj order by id desc"
还是出现
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '*' 附近有语法错误。
回复
snlixing 2008-03-21
可以结帖了

鉴定完毕。。。。
回复
Love_birds 2008-03-21
晕,跑过,以为是什么复杂Sql,进来想看看。呵呵。

没想到……(当我路过!)
回复
ycmuma 2008-03-21
<%
dim con, rs
dim sql
dim id1
id1 = Request.QueryString("id")
set con = Server.CreateObject("ADODB.Connection")
con.Open "Driver={SQL Server};Server=(local);UID=sa;PWD=;"&_
"Database=fzgl" '打开数据库连接
set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
sql= "select Top" & id1 & " * from fqpzdj order by id desc"
rs.open sql,con,1,1
...
%>
回复
hztgcl1986 2008-03-21
[Quote=引用 1 楼 myvicy 的回复:]
sql="select Top "&id1&" * from fqpzdj order by id desc"
数字两边不要带'
[/Quote]







回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-03-21 11:20
社区公告
暂无公告