* @version 1.0 * @filesource */ /** * Oracle用にページングするときに必要なSQLを生成するクラス * @package COMMON.class * @author Fabrice Co. */ class OraclePagination { /** * 1ページ文だけSELECTするSQLを返す * * @param string $sql 対象となるSQL * @param integer $page_number 抽出するページ番号。>0 * @param integer $lines_per_page 1ページあたりの行数。>0 * @return string * @static * @access public * @see SelectLimit() */ function SelectPage($sql,$page_number,$lines_per_page) { $offset = ($page_number * $lines_per_page) - $lines_per_page; return OraclePagination::SelectLimit($sql,$lines_per_page,$offset); } /** * PostgreSQLやMySQLのLIMIT,OFFSETを使う * * sql文を渡すとrownumを使ったsqlを返す。sqlを返すのであって実行はしない。 * * @param string $sql 対象となるSQL * @param integer $limit 返される最大行数 * @param integer $offset 行を始める前に飛ばす行数 * @return string * @static * @access public */ function SelectLimit($sql,$limit,$offset=0) { $limited_rownum = $limit+$offset; $result = << $offset ORDER BY COLUMN_ROWNUM EOD; return $result; } /* $result = <<