关于查询后返回的问题。。

muxrwc muxrwc 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
很少贴这么多东西问,但是实在是郁闷了,用空的前辈帮忙看看谢谢了,刚唯一的50分也问这个问题了,但是没有得到答案。。

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



ALTER PROCEDURE [dbo].[cpage] (
@page_num int, -- 当前页数
@page_max int, -- 每页显示条数
@table varchar(50), -- 表名
@id varchar(20), -- ID字段
@shows varchar(800), -- 显示列
@sort varchar(20), -- 排序字段(推荐用ID)
@where varchar(800), -- 查询条件不推荐用like '%..'
@order varchar(20), -- 排序方式
@record_count int OUTPUT, -- 记录总数
@page_count float OUTPUT
)
As

DECLARE @sql nvarchar(4000), @t_where varchar(800), @t_order varchar(50), @mod int, @top int

IF @where Is Null Or LTrim(RTrim(@where)) = '' -- 设置条件
SET @t_where = ''
ELSE
SET @t_where = ' WHERE ' + LTrim(RTrim(@where))

IF @order = 'DESC' -- 设置排序
SET @t_order = 'ASC'
Else
SET @t_order = 'DESC'

SET @sql = 'SELECT @record_count = COUNT(*) FROM ' + @table + @t_where

EXEC sp_executesql @sql, N'@record_count int OUTPUT', @record_count OUTPUT -- 返回记录总数

SET @page_count = @record_count / @page_max
SET @mod = @record_count - CAst(@page_count As int) * @page_max
IF @mod > 0 SET @page_count = @page_count + 1

IF @page_count > @page_num Or @mod = 0 -- 设置显示页数
SET @top = @page_max
ELSE
SET @top = @mod

SET @sql = 'SELECT temp.' + @id + ', data.' + Replace(@shows, ',', ', data.') + ' FROM (' +
'SELECT TOP ' + CAst(@top As varchar) + ' * FROM (' +
'SELECT TOP ' + CAst(@page_num * @page_max As varchar) + ' ' + @id +
' FROM ' + @table + @t_where + ' ORDER BY ' + @sort + ' ' + @order +
') As temp ORDER BY ' + @sort + ' ' + @t_order + ') As temp' +
' INNER JOIN' + @table + ' As data ON temp.' + @id + ' = data.' + @id +
' ORDER BY temp.' + @id + ' ' + @order

EXEC sp_executesql @sql --这里只要一执行后,后面就接收不到值了,怎么解决啊。。



调用如下

wc.Parameters.Append wc.CreateParameter("@page_num", 3, 1, 8, 53821)
wc.Parameters.Append wc.CreateParameter("@page_max", 3, 1, 4, 15)
wc.Parameters.Append wc.CreateParameter("@table", 200, 1, 50, "[KC].[dbo].[kucun]")
wc.Parameters.Append wc.CreateParameter("@id", 200, 1, 20, "id")
wc.Parameters.Append wc.CreateParameter("@shows", 200, 1, 800, "*")
wc.Parameters.Append wc.CreateParameter("@sort", 200, 1, 20, "id")
wc.Parameters.Append wc.CreateParameter("@where", 200, 1, 800, "")
wc.Parameters.Append wc.CreateParameter("@order", 200, 1, 20, "DESC")
wc.Parameters.Append wc.CreateParameter("@record_count", 3, 2)
wc.Parameters.Append wc.CreateParameter("@page_count", 3, 2)



Set rs = wc.Execute

Response.Write wc.Parameters("@record_count").Value '就是收不到
Response.Write "<br />"
Response.Write wc.Parameters("@page_count").Value '它也收不到
Response.Write "<hr />"

While Not rs.Eof
Response.Write rs("id").Value & "<br />"
rs.MoveNext : Wend
...全文

相关推荐

Mybatis查不到数据查询返回Null问题

mybatis突然查不到数据,查询返回的都是Null,但是 select count(*) from xxx查询数量,返回却是正常的。好多朋友遇到这样的问题不知所措,下面小编通过本教程简单给大家说明下

weixin_38702931

mybatis中查询结果为空时不同返回类型对应返回值问题

主要介绍了mybatis中查询结果为空时不同返回类型对应返回值问题,本文分几种方法给大家介绍的非常详细,需要的朋友可以参考下

weixin_38722052

解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题

今天小编就为大家分享一篇解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38543749

解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

主要介绍了mybatis使用char类型字段查询oracle数据库时结果返回null问题的解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

weixin_38672807

智能数据库自然语言查询助手项目_一个通过OpenAI兼容API将用户自然语言问题自动转换为精准SQL查询并连接PostgreSQL数据库执行返回结构化结果的应用程序_该项目核心功能.zip

智能数据库自然语言查询助手项目_一个通过OpenAI兼容API将用户自然语言问题自动转换为精准SQL查询并连接PostgreSQL数据库执行返回结构化结果的应用程序_该项目核心功能.zip

A000000999999Z
评论 11
收藏 已收藏
分享
返回顶部
muxrwc
疑难问题 22,298 成员 121,727 内容