C#을 사용하여 Microsoft Access 데이터베이스 압축
[webdatanetkb]
ID: KR306538 CREATED: August 23, 2001 MODIFIED: October
25, 2001
MSINTERNAL | kbnokeyword kbHOWTOmaster
\* Security : MSINTERNAL
============================================================================
====
----------------------------------------------------------------------------
----
본 문서의 정보는 다음의 제품에 적용됩니다.
- ADO .NET Beta 2
- Microsoft Visual C# .NET Beta 2
----------------------------------------------------------------------------
----
본 문서에서는 Microsoft 제품의 베타 릴리스에 대해 설명합니다. 본
문서의
정보는 "있는 그대로" 제공되며 사전 통보 없이 변경될 수 있습니다.
이 베타 제품은 Microsoft의 공식 제품 지원 서비스를 받을 수 없습니다. 베타
릴리스 지원에 대한 자세한 내용은 베타 제품 파일에 포함된 설명서
또는
릴리스를 다운로드한 웹 사이트에서 참조하십시오.
본 문서의 Microsoft Visual Basic .NET 버전에 대한 내용은
Q306287 을
참조하십시오.
작업 내용
==========
- 요약 (#1)
- 요구 사항 (#2)
- Access 데이터베이스 압축 절차 (#3)
- 주의할 점 (#4)
- 참조 (#5)
요약
====
이 문서에서는 Visual C#을 사용하여 Microsoft Access 데이터베이스를 압축하는
방법을 보여줍니다. ADO(ActiveX Data Objects)나 ADO.NET은
Microsoft Access
데이터베이스를 압축하거나 복구하는 방법을 제공하지 않습니다. 그러나
MDAC(Microsoft Data Access Components) 버전 2.1에 소개된
JRO(Jet and
Replication Objects)용 Microsoft OLE DB Provider를 사용하여 이
작업을 완료할
수 있습니다. ADO.NET에서는 Interop계층을 통해 구성 요소 개체
모델(COM) 기반
개체 라이브러리를 사용할 수 있습니다.
요구 사항
----------
- Microsoft C# .NET
- Microsoft Jet and Replication Objects 2. xLibrary(여기서 2. x는
2.1, 2.5
또는 2.6)
\*
\* MSONLY:
\* ============
\*
\* Visual Studio .NET installs MDAC 2.7, which does not install
an updated
version of this library. If MDAC 2.6 or earlier is not installed prior
to
installing the .NET framework, this library will not be available.
Access 데이터베이스 압축 절차
--------------------------------------
1. Visual Studio .NET을 엽니다.
2. 새로운 Visual C# .NET 콘솔 응용 프로그램을 만듭니다.
Class1.cs가
기본적으로 생성됩니다.
3. 솔루션 탐색기 창에서 참조를 마우스 오른쪽 단추로 누른 다음 참조 추가를
누릅니다.
4. 참조 추가대화 상자의 COM탭에서 Microsoft Jet and Replication
Objects 2.x
Library를 누릅니다. 선택을 눌러 이 참조를 선택한 구성 요소구역에
추가한 다음
확인을 누릅니다.
5. 선택한 라이브러리에 대한 래퍼가 발견되지 않으면 경고 메시지가
나타납니다.
예를 눌러 래퍼를 생성합니다. ADODB와 JRO 참조가 프로젝트 참조에 추가됩니다.
6. 솔루션 탐색기 창에서 Class1.cs를 마우스 오른쪽 단추로 누른 다음 코드
보기를 누릅니다.
7. Class1.cs 코드 창에서 모든 코드를 삭제합니다.
8. 다음 코드를 복사하여 코드 창에 붙여넣습니다.
using System;
namespace ConsoleApplication5
{
class Class1
{
static void Main(string[] args)
{
try
{
JRO.JetEngine jro = new JRO.JetEngine();
string OldDb = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data
Source=<Path_to_your_database>\\nwind.mdb";
string NewDb = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data
Source=<Path_to_new_database>\\new_nwind.mdb";
jro.CompactDatabase(OldDb,NewDb);
Console.WriteLine("Finished Compacting Database");
}
catch(Exception e)
{
Console.Write("The following error occurred: " +
e.Message);
}
}
}
}
10. 원본과 대상 .mdb 파일 경로를 적절히 변경합니다.
11. F5 키를 눌러 프로젝트를 빌드하고 실행합니다.
참고: 압축된 데이터베이스는 Access 2000(Jet 4.0) 형식이 됩니다.
다른 Jet
형식은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
Q230501 HOWTO: Compact Microsoft Access Database via ADO
주의할 점
----------
데이터베이스를 압축하려면 Jet 데이터베이스 엔진은 데이터베이스
파일에
단독으로 액세스해야 합니다. 현재 사용 중인 데이터베이스 파일을
압축하려고
시도하면 예외가 발생합니다. try...catch블록을 사용하여 이 예외를
catch할 수
있습니다.
참조
----
..NET Framework와 COM Interop 계층에 대한 자세한 내용은 다음
.NET Framework
Developer's Guide 웹 사이트를 참조하십시오.
Exposing COM Components to the .NET Framework
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/ht
ml/cpconexposingcomcomponentstonetframework.asp
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/h
tml/cpconexposingcomcomponentstonetframework.asp)
ADO와 JRO를 사용하여 Access 데이터베이스를 압축하는 방법은
Microsoft 기술
자료의 다음 문서를 참조하십시오.
Q230501 HOWTO: Compact Microsoft Access Database via ADO
Additional query words: CSharp try-catch