需要在(ASP.NET)网站的网格视图中显示记录。对于同样的我使用过程将数据返回到.net Net Framework。
因为我的问题是我需要使用表格设置返回我对于curr的ROW(数据)的数量。页。我还需要总行数来进行分页(显示没有页面)。
CREATE PROCEDURE usp_SearchEmp(IN _RowIndex int, IN _MaxRows int , IN _SortByCol varchar(40),IN _EmployeeID int)
DECLARE _getLastSequenceNumberSQL VARCHAR(4000);
set _getLastSequenceNumberSQL ='
SELECT SQL_CALC_FOUND_ROWS
@rownum:=@rownum+1 ROW,
E.EmployeeID,
E.EmployeeName
from
(SELECT @rownum:=0) r, Employee E ;
IF (_EmployeeID IS NOT NULL) THEN
set _getLastSequenceNumberSQL = concat(_getLastSequenceNumberSQL,' WHERE (E.EmployeeID=',_EmployeeID,')');
END IF;
IF (_SortByCol IS NOT NULL) AND (_SortByCol != "") THEN
set @SortCol = concat(' ORDER BY ', _SortByCol) ;
ELSE
set @SortCol = 'ORDER BY EmployeeName';
END IF;
set _getLastSequenceNumberSQL = concat(_getLastSequenceNumberSQL, @SortCol , ' LIMIT ', _RowIndex, ' , ' , _MaxRows,' ');
SET @getLastSequenceNumberSQL = _getLastSequenceNumberSQL;
prepare lastRecordStmt from @getLastSequenceNumberSQL;
execute lastRecordStmt;
deallocate prepare lastRecordStmt;
select FOUND_ROWS() as i;
但现在的问题是,当我从.net调用此过程时,它只返回Found_Rows的结果..
I need out put . some thing like the following
喜欢: -
SELECT 64 AS `ROWMAX`, E.EmployeeID, E.EmployeeName FROM Employee E order by EmployeeID LIMIT 0 , 4
|--------------------------------------------------------------|
| ROWMAX | EmployeeID | EmployeeName |
|--------------------------------------------------------------|
| 64 | 1 | Emp One |
| 64 | 2 | Emp Two |
| 64 | 3 | Emp Three |
| 64 | 4 | Emp Four |
----------------------------------------------------------------
因为我可以使用ROWMAX列来确定网格视图中的页数。
所以请指导我一样。因为我是MYSQL的新手
答案 0 :(得分:2)
您可以制作动态过程。这将只计算所有MaxNo of Row。并将返回相同。并且可以从不同的程序中调用相同的程序。
答案 1 :(得分:2)
如果你可以使用多个查询,你可以在同一个程序中有2个结果集(即添加一个SELECT FOUND_ROWS();在查询后使用LIMIT只显示一个页面结果)
这是一篇关于在PHP中实现它的好文章: http://www.robert-gonzalez.com/2007/06/01/mysql-multiple-result-procs-in-php/
答案 2 :(得分:1)
我们可以使用其他PROCEDURE来自MainProcedure(请说主程序)。
让ProcedureCound说它将包含Pr build sql查询“SELECT COUNT(*)” 并将接受两个参数(参数)
1)将参数输出 2)将从动态生成的条件开始。在主要程序中。
所以现在需要附加第二个参数,其中包含我们从Main Procedure获得的condition.which .. 并将结果存储到out参数中,我们可以将其访问回Main Procedure。