Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11218892
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-04-29 08:22:20

MYSQL 从5.0开始便加入了存储过程,因为它出现的时间还不是很久,现在有很多都在问,MYSQL存储过程怎么建立,下我就我所理解的建了一个.在asp.net2.0下调用非常方法,跟SQL差不多,但也有少少差别,下面就是MYSQL一个分页的的存储过程;MYSQL的limite给我们带来很大的方便.不要写太多的代码!

DELIMITER $$;

DROP PROCEDURE IF EXISTS `mytest`.`MyPage`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `MyPage`(

tableName varchar(100),

fieldsName VARCHAR(100),

pageIndex int,

pageSize int,

sortName VARCHAR(500),

strWhere varchar(500)

)

BEGIN

DECLARE fieldlist VARCHAR(200);

if fieldsName=''||fieldsName=null THEN

   set fieldlist='*';

else

   set fieldlist=fieldsName;

end if;

if strWhere=''||strWhere=null then

     if sortName=''||sortName=null then

         set @strSQL=concat('select ',fieldlist,' from ' , tableName,' limit ',(pageindex-1)*pageSize,',',pageSize);

     else

         set @strSQL=concat('select ',fieldlist,' from ' , tableName,' order by ',sortName,' limit ',(pageindex-1)*pageSize,',',pageSize);

     end if;

else

    if sortName=''||sortName=null then

        set @strSQL=concat('select ',fieldlist,' from ' , tableName,' where ',strWhere,' limit ',(pageindex-1)*pageSize,',',pageSize);

    else

        set @strSQL=concat('select ',fieldlist,' from ' , tableName,' where ',strWhere,' order by ',sortName,' limit ',(pageindex-1)*pageSize,',',pageSize);

    end if;

end if;

PREPARE stmt1 FROM @strSQL;

EXECUTE stmt1;

DEALLOCATE PREPARE stmt1;

END$$

DELIMITER ;$$

Asp.net2.0调用方法.下次给出来…….

阅读(1714) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~