create PROCEDURE dbo.Pageation
(
@PageSize int, --每页记录
@PageIndex int, --当前页数,1开始
@Condition varchar(8000), --查询条件,包括and,where,必须有一个条件如where 2>1
@TheTable varchar(8000), --表名
@SelectField varchar(8000), --要选择的字段
@OrderBy varchar (8000), --OrderBy字句,包括order
@TableID varchar (8000) -- --table主键
)
AS
begin
declare @Sql varchar(8000)
--返回记录
set @Sql='select top ' + cast(@PageSize as varchar(10)) + ' ' + @SelectField + ' from ' + @TheTable + ' ' + @Condition + ' and '
+ @TableID +' not in (select top ' +CAST((@PageSize*(@PageIndex-1)) AS VARCHAR(20))+' ' +@TableID+' from ' + @TheTable + ' ' + @Condition
+ ' ' + @OrderBy +') ' + @OrderBy
exec(@sql)
end
我的java代码是:
try {
PageationBean PB=null;
cs=condb.getCon().prepareCall("{call Pageation(?,?,?,?,?,?,?)}");
cs.setInt(1, 5);
cs.setInt(2, PageIndex);
cs.setString(3,Condition);
cs.setString(4,TheTable);
cs.setString(5,SelectField);
cs.setString(6,OrderBy);
cs.setString(7,TableID);
rs=cs.executeQuery();
if(rs.next())
PB.RS=rs;
return PB;
} catch (Exception e) {
e.printStackTrace();
return null;
} 真的不知道是什么地方错了,老是报
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]必须指定要从中选择的表。
这个错误,rs=cs.executeQuery();这个地方有问题吗
(
@PageSize int, --每页记录
@PageIndex int, --当前页数,1开始
@Condition varchar(8000), --查询条件,包括and,where,必须有一个条件如where 2>1
@TheTable varchar(8000), --表名
@SelectField varchar(8000), --要选择的字段
@OrderBy varchar (8000), --OrderBy字句,包括order
@TableID varchar (8000) -- --table主键
)
AS
begin
declare @Sql varchar(8000)
--返回记录
set @Sql='select top ' + cast(@PageSize as varchar(10)) + ' ' + @SelectField + ' from ' + @TheTable + ' ' + @Condition + ' and '
+ @TableID +' not in (select top ' +CAST((@PageSize*(@PageIndex-1)) AS VARCHAR(20))+' ' +@TableID+' from ' + @TheTable + ' ' + @Condition
+ ' ' + @OrderBy +') ' + @OrderBy
exec(@sql)
end
我的java代码是:
try {
PageationBean PB=null;
cs=condb.getCon().prepareCall("{call Pageation(?,?,?,?,?,?,?)}");
cs.setInt(1, 5);
cs.setInt(2, PageIndex);
cs.setString(3,Condition);
cs.setString(4,TheTable);
cs.setString(5,SelectField);
cs.setString(6,OrderBy);
cs.setString(7,TableID);
rs=cs.executeQuery();
if(rs.next())
PB.RS=rs;
return PB;
} catch (Exception e) {
e.printStackTrace();
return null;
} 真的不知道是什么地方错了,老是报
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]必须指定要从中选择的表。
这个错误,rs=cs.executeQuery();这个地方有问题吗
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货