설치 경로에 한글 경로가 있으면 안된다...
그걸 3달동안 작업하면서 오늘에야 알았다...
실무자 PC에 설치해 주는 도중에 참...부끄럽소...
설명 : DB 유형별 게시판 리스트 화면에서의 페이지 분할 쿼리문
한 page당 출력되는 레코드 수를 page size라 한다면 아래 쿼리를 사용하여 항상 page size 만큼만 불러와서 테이블에 많은 레코드가 쌓여 있더라도 안정된 성능을 보장할 수 있다 단 오라클의 경우엔 생각해 볼 여지가 있다
변수 설명
page_size - page당 출력되는 레코드 수
current_page - 현재 페이지
Oracle :
start_num = (current_page - 1) * page_size + 1
end_num = current_page * page_size
select seq,title,wr_date from
(select rownum no, ma.seq,ma.title,ma.wr_date from
(select seq,title,wr_date from bbs order by seq desc) ma
where rownum <= end_num)
where no >= start_num order by seq desc
MS-SQL :
start_num = (current_page - 1) * page_size
select top page_size seq,title,wr_date from bbs where seq not in
(select top start_num seq from bbs order by seq desc) order by seq desc
MySql :
start_num = (current_page - 1) * page_size
select seq,title,wr_date from bbs order by seq desc limit start_num, page_size
덧붙여서 :
가장 외부의 order by는 불필요할 수 있으나 인덱스 컬럼 이외의 정렬이 있을수 있으므로 그냥 두기로 한다
ceil 함수가 없는 언어에서 page_count 구하기
page_count = int((record_count + record_count - 1) / page_size)
그즈음 : 잘 짜여진 소스를 보다보면 한편의 아름다운 시를 읽는 듯한 코딩 미학을 발견할 때가 있다 갖은 기교와 현란함으로 자랑하지 않는 가운데 간결하면서도 함축된 깊이를 느끼게 해주는 코드들이다
더하지도 덜하지도 않은 단순함과 간결함 그러면서도 깊이를 잃지 않은 정확성은 나를 포함한 내 직업 전체의 품격을 높여주는 것 같다
이처럼 뭐든지 열심히 하면 예술의 경지에 다다를 수 있다는데 이 바닥에서 예술을 추구한다면 자기 이름도 생각 안날때까지 맞던가 아니면 신용불량자로 굶어 죽은 후에 후대에 가서 하드디스크가 복원되면 그때 추앙 받을 수 있을 것이다
[출처] [게시판]리스트 화면에서의 페이지 분할 쿼리문|작성자 때릴거야
테이블에 insert, update, delete 문으로 지시하고, COMMIT을 실행하면 모든 변경 사항이 영구히 데이터베이스에 저장되며, ROLLBACK은 마지막 commit이나 Rollback 이후의 변경 사항을 취소하고 데이터베이스를 원래의 상태로 되돌려 준다. 이를 트랜잭션(transaction)이라 하며, 트랜잭션에서 데이터베이스를 변경하라는 명령이 commit이고, commit 전까지 변경된 것을 되돌리는 것이 rollback이다.
SAVEPOINT는 트랜잭션 내에 세이브포인트를 만들 수 있게 해준다. 하나의 트랜잭션 내에 여러 개의 세이브포인트를 만들 수 있으며, ROLLBACK TO <세이브포인트> 문을 이용하여 큰 규모의 트랜잭션 내에서 명령들의 특정한 그룹만 롤백 할 수 있다.
SET TRANSACTION 명령으로 고립도 레벨이나 트랜잭션의 읽기 전용 혹은 읽기 쓰기 모드, 그리고 특정한 롤백 세그먼트를 이용하도록 하는 등의 다양한 트랜잭션 속성을 지정하는데 이용된다.
SET TRANSACTION READ ONLY SET TRANSACTION READ WRITE SET TRANSACTION ISOLATION LEVEL SERIALIZABLE SET TRANSACTION ISOLATION READ COMMITTED 또한 SET CONSTRAINTS 문은 트랜잭션 내의 연기 가능 제약조건의 강제 모드를 지정한다. 【형식】ROLLBACK 문 ROLLBACK [WORK] [{TO [SAVEPOINT] savepoint}|{FORCE 'text'} ]; 【형식】COMMIT 문 COMMIT [WORK] [{COMMENT 'text'} | {FORCE 'text' [,integer]} ];기존 8i까지는 작업을 취소한다는 의미로 rollback이라는 용어를 사용했지만, 9i부터는 undo라는 용어를 사용한다. 기존에 사용하던 용어인 롤백 데이터, 롤백 세그먼트 등을 모두 언두 데이터, 언두 세그먼트라고 지칭한다.