[ASP 09.07] 05. ASP정리 데이터베이스 조작

2010. 9. 7. 14:34Web/ASP


DB에 조작언어는 나중에 DB에서 정리 해볼 것이다. 이외에 Asp에서 어떻게 사용하나를 정리 해보겠습니다.^^

1.ADODB.Connection 개요

Connection개체는 Asp에서 DB프로그래밍을 위해 데이터 저장소에 대해 연결을 제공 완벽하지는 않지만 질의에 대한 결과로 레코드셋을 반환하는 등 다양한 기능을 제공 연결 설정에 대한 오류를 기술하는 Error컬렉션과 데이터베이스 연결환경정보가 저장된 Properties 컬렉션을 포함

Connection 개체의 주요 메소드
 BeginTrans  트랜잭션을 시작
CommitTrans, RollbackTrans와 함께 사용
 Cancel  현재 처리중인 비동기 Execute나 Open메소드의 실행을 중단
 Close  열려있는 연결과 연결에 의존하는 모든 개체를 닫음
 CommitTrans  현재 트랜잭션을 정상적으로 종료시킴
 Execute  질의문이나 저장 프로시저 등을 실행
인수 사용에 따라 Recordeset개체를 반환
 Open  데이터 소스에 대한 접속을 시작
 RollbackTrans  현재의 트랜잭션 동안 이루어진 모든 변경사항을 취소하고 트랜잭션을 종료시킴

Connection 개체의 주요 속성
 Attributes  Connection 개체의 속성을 Long형의 숫자로 반환 기본값은 0
 CommandTimeout  명령 실행제한 시간 지정 기본값은 30초
 ConnectionString  데이터베이스 연결 문자열
 ConnectionTimeout  데이터 소스와의 연결 시도 제한 시간 기본값 15초
 DefaultDatabase  Connection 개체에서 사용될 기본 데이터 베이스
 Errors  Provider와 관련한 연결 오류로 발생된 Error개체를 포함하는 컬렉션

Connection.Execute 사용법
실제로 ASP에서 DB를 사용하는데 명령을하는 메소드이다. 중요하므로 잘알아 두길 바란다.
 Connection.Execute(CommandText,[RecordsAffected],[Options])

(1). CommandText: Execute메소드를 통해 데이터베이스에서 실행할 명령어의 본문을 의미
(2). RecordAffected: 데이터베이스에서 CommandText를 실행한 결과, 적용된 레코드의 숫자를 Long형으로 반환
(3). Options: CommandText의 옵션을 설정, CommandText의 형태를 정의하는 CommandTypeEnum과 질의 결과 처리를 정의하는 ExecuteOptionEnum의 사용할 수 있음

 Set objRs=objDB.Execute(query,,1)


2.ADODB.Recordset개체
Open메소드를 이용하여 레코드셋 구성 Recordset개체에서 사용빈도가 가장 높은 기본 메소드임 Open메소드를 이용하여 DB에 질의문을 전송하고 그 결과를 반환받아 레코드 셋을 만듬 레코드셋은 환경 설정 방법에 따라 여러 형태의 특성을 갖는 독특한 구조로 구성되며 Recordset.Open메소드로 데이터 소스에 질의 할때 사용

Recordset.Open Source, ActiveConnection, [CursorType],[LockType], [Options] S
(1) Source - 데이터베이스에서 실행할 질의문을 나타냄
(2) ActiveConnection - Source인수에서 정의한 질의문을 실행할 대상이 되는 데이터 연결을 의미
(3) CursorType - 커서는 레코드셋에서 특정레코드를 가르키는 일종의 포인터임
                      - 커서는 앞으로만 이동하지 않고 뒤로도 이동하는데 코드를 사용하면 커서의 이동과 저장된 레코드
                         갱신여부를 파악할 수 없음
                      - CursorType은 4가지 종류로 나눠짐
(4) LockType - 데이터 스토어로 부터 다운받은 레코드셋의 내용을 변경할 수 있는지 여부를 상수값으로 나타냄
(5) Options - Open메소드의 다섯 번째 인수는 Options로 메소드 실행 시 전송되는 Source의 종류가 어떤 것인지를 정의하는 부분

 타입  상수   값   설명
 Read-Only  adLockReadOnly  1 레코드셋을 업데이트가 불가능한 읽기 전용 레코드셋으로 만든다. 기본값이다.
 Pessimistic  adLockPessimistic  2  레코드셋에서 수정을 시작하는 순간, 데이터스토어의 레코드 복사본이 잠김 상태로 들어가 다른 사용자가 변경할 수 없도록 만든다. 레코드 수정이 끝나고 Recordset.Update 메소드를 사용하여 변경 사항을 저장하면 잠금이 다시 풀린다.
 Optimistic  adLockOptimistic  3  레코드 수정시에는 잠금이 이루어지지 않고, Recordset, Update 메소드를 통해 변경 사항이 저장되는 순간 잠금 상태로 들어간다. 같은 시점에 두명이 동시에 업데이트하는 순간 문제가 발생할 가능성이 있다.
 Optimistic Batch  adLockBatchOptimistic  4  여러개의 레코드가 실제로 업데이트 될 경우 잠금 상태로 들어간다.


Recordset개체의 주요 속성
 AbsoulutePage  페이지 기능이 부여된 레코드셋에서 현재 페이지 지정 
 EOF  DB에 질의 결과 검색된 내용이 없으면 EOF속성이 참
 CursorType  레코드셋이 사용하는 커서의 종류를 설정
페이징을 하기 위해서는 커서 타입이 Static이상이어야 함
 PageCount  페이지 기능을 사용할 때 레코드셋에 저장된 레코드가 총 몇페이지 인지를 반환
 PageSize  페이지 기능을 사용할 때 한 페이지 당 레코드 수를 지정
 RecordCount  현재 레코드셋 개체에 저장된 레코드의 개수를 반환


Recordset개체의 주요 메소드
 Close  현재 레코드셋 개체를 닫음
 Move(n)  n수 만큼 레코드를 이동함
 MoveFirst
 MoveNext
 MovePrevious
 MoveLast
커서의 위치를 처음, 다음, 이전, 마지막, 레코드로 이동 
 Open  연결된 DB로 질의문을 전송하고 레코드셋을 열기
 GetRows 레코드셋에 저장된 데이터를 배열로 전환하기