4. 중복 데이터 처리 - Ⅰ
자료다운로드 : 오튜공구함004.xls,
members.mdb
안녕하세요. 오튜가족 여러분!
한동안 뜸했던 곽승주입니다. 오늘의 주제는 데이터베이스에 관한 것입니다. 데이터베이스는 한번에
배울 수 없을 만큼 그 내용이 방대하고 어렵습니다. 그러나, 초보에서 중급으로 발돋움 하시려는 분들은 한번 보아주셨으면 하는 것이라 데이터베이스를 꺼내보았습니다.
사실 데이터베이스만큼 필요한 것은 없다고 봅니다. 취미로 프로그래밍을 하든 생업으로 하든 데이터베이스는 우리가 숨쉬는 공기만큼 중요하지만 눈에 보이질 않아 중요성을 잘 모를 수 있습니다. 여러분의 하드디스크도 일종의 데이터베이스입니다. 탐색기를 열어보시죠.각각의 파일과 폴더는 하나의 레코드이며 파일이름, 크기, 종류, 바뀐
날짜 등은 필드에 해당합니다. (이번 연재는 데이터베이스에 대한 사전 지식 즉 레코드, 필드, SQL 정도는 아시리라 생각하고 시작하겠습니다.)
오늘부터 시작하여 3회에 걸쳐 데이터베이스 중 마이크로소프트사의
걸작 중에 하나인 ADO를 배워봅시다. ADO를 처음부터 설명하려면 UDA(Universal Data Access), OLEDB, DAO, RDO
등등을 차례차례 설명하는 것이 순서이지만 이런 것에 대해서는 이미 많은 데이터베이스관련 웹사이트에서 설명하고 있어 생략합니다. 다만 여기서는 ADO사용이 데이터베이스를 다루는 기술이며 ADO 개체와 데이터베이스사용에 대한 간단한 설명과 예제를 보여드리겠습니다. ADO에 대해 자세히 알고 싶으시다면 다음의 두 권의 책을 소개해드립니다.
taeyo's Advanced ASP to be Professional(정보문화사) , @DO & MTS Programming
1. ADO 개체
ADO 개체모델은 다음 그림과 같습니다.
여러 개체가 있지만 가장 자주 사용하고 중요한 3가지 개체로는 Conncetion 개체, Command 개체, Recordset 개체가 있습니다.
Connection 개체 |
데이터베이스의 연결에 사용됩니다. 연결할 서버와 데이터베이스를 결정하며,
연결뿐 아니라 명령을 실행하고 결과값을 가져와서
볼 수도 있습니다. |
Command 개체 |
데이터베이스에 연결 후 SQL문이나 명령을 실행할때 사용합니다. |
Recordset 개체 |
데이터베이스에 연결, 명령 수행 후 결과 값을 받아 올 때 사용합니다. |
● Connection 개체
Connection 개체는 데이터베이스와 연결하는 데 필요한 프로퍼티와 메서를 제공하고 있습니다. Connection 개체로 연결되어야만, 추가.수정.삭제등 데이터베이스상의 SQL명령과 필요한 데이터를 결과 값으로 가져올 수 있습니다.
- 프로퍼티
ConnectionString : 데이터소스에 연결을 하기위한 정보
ConnectionTimeOut : 연결 후 종료까지의 시간
- 메서드
Open() : 데이터소스를 연결
Close() : 연결을 종료Execute() : SQL 문 저장 프로시저를 실행
- 트랜잭션
BeginTrans() : 새로운 트랙잭션을 시작
CommitTrans() : 수정 내용을 저장하고 트랜잭션 종료
RollbackTrans() : 수정 내용을 취소하고 트랜잭션 종료
● Command 개체
Command 개체는 위에서 배운 Connection 개체와 마찬가지로 연결과 실행의 작업을 할 수 있습니다. Command 개체는 ActiveConnection 개체를 사용하여 연결을 하는데 데이터 소스 연결시 명령을 처리하는 동안만 연결하게 됩니다.
- 프로퍼티
ActiveConnection : Command 개체와 사용되는 연결을 위한 개체
CommandText : 실행될 명령어 저장
CommandType : CommandText 프로퍼티에 사용하는 명령어 타입지정
Prepared : 실행전에 문서를 컴파일시킬 지를 지정
CommandTimeout : 실행을 기다리는 시간지정. 디폴트 : 30초
- 메서드
CreateParameter : Parameter 콜렉션에서 새로운 Parameter 개체 생성
Execute : SQL문 과 저장 프로시저를 실행
● RecordSet개체
Connection 개체와 Command 개체에서 데이터 소스와 연결하고 실행하면 그 결과는 하나의 명령만 처리될수 도 있지만 대개는 RecordSet에 결과가 저장됩니다.
RecordSet은 여러개의 레코드들로 구성되어 있으며 RecordSet에 대한 각종 명령을 수행합니다.
- 프로퍼티
ActiveConnection : 레코드셋에 있는 연결 개체
BOF : 현재 레코드의 위치가 첫번째 레코드 위에 있으면 True
EOF : 마지막 레코드 다음에 레코드의 위치가 있으면 True
CursorType : 레코드셋에 사용되는 커서 타입
LockType : 편집중 레코드에 지정된 락 타입
PageCount : 레코드셋의 페이지수
PageSize : 하나의 페이지를 구성하는 레코드 수 지정
RecordCount : 현재레코드셋의 레코드 수
- 메서드
Open : 레코드셋에서 커서 열기
Close : 레코드셋 닫기
AddNew : 수정 가능한 레코드셋에서 새로운 레코드 생성
Delete : 레코드셋의 현재 레코드를 닫음Update : 현재 레코드 변경
Move : 현재레코드에서 지정된 수만큼 이동
MoveFirst : 레코드의 처음으로 이동
MoveLast : 마지막 레코드로 이동
MoveNext : 다음 레코드로 이동
MovePrevious : 이전 레코드로 이동
위의 내용이 지루하시죠? 그러면 지금부터는 간단히 MDB파일을 가지고 데이터베이스에 접속하여 데이터를 워크시트로 가져오는 것을 보여드리겠습니다.
먼저 MDB파일을 하나 구해보죠 다음의 Members.MDB파일은 MAIN테이블 하나로 구성되어 있고 그 테이블에는 간단히 회원이름, 회원아이디, 전화번호가 기록되어 있습니다.
이제 데이터베이스는 준비되었으니 엑셀에서 새
통합문서를 하나 준비합니다.
새 통합문서를 만들면 바로 VBE로 가셔서 ADO개체를 현재 새 통합문서에 포함시켜주어야 합니다(도구(T)-참조(R)를 클릭한다.)
|