储存过程返回空数据集时,产生错误

v1srine 2012-07-06 11:17:04

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]'-' 附近有语法错误。

aaa.asp,行 111


参数@where
储存过程 返回
set @sql = 'select * from aaa'
if @where != ''
set @sql = @sql + @where
exec (@sql)
语句大致是这样,以上代码临时粗写!

当 where id = 1
1存在的时候 则不会出现错误,
当 删除id 1
再查询。where id = 1 则 以上错误则出现!



在rs.open 的时候就出错
第111行代码如下

rs.open sql,conn,0,1


在rs open的时候就会这样!
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生无悔 2012-07-07
  • 打赏
  • 举报
回复
并不是返回空记录集时会出错,应是你的sql语句有地方写错了,把你原来整个贴出来

create proc test
as
declare @sql varchar(max);
select @sql='select * from aaa where 1=2';
exec(@sql);

你在程序中调用此sp试下,肯定不会在rs.open时出现语法错误
Dogfish 2012-07-07
  • 打赏
  • 举报
回复
在mssql的query analysis上测试一下吧。各种条件测试一下,看看是否正确,然后再在asp里运行。
v1srine 2012-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
并不是返回空记录集时会出错,应是你的sql语句有地方写错了,把你原来整个贴出来

SQL code

create proc test
as
declare @sql varchar(max);
select @sql='select * from aaa where 1=2';
exec(@sql);


你在程序中调用此sp试下,肯定不会在rs.open时出现语法错误
[/Quote]

谢谢,检查了一下,还真是我错了!
v1srine 2012-07-06
  • 打赏
  • 举报
回复
在线求解!
希望前辈们讲解一下!

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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