CDaoWorkspace 클래스
단일 사용자가 로그인부터 로그인까지 암호로 보호되고 명명된 데이터베이스 세션을 관리합니다.
참고 항목
DAO(데이터 액세스 개체)는 Office 2013을 통해 지원됩니다. DAO 3.6은 최종 버전이며 사용되지 않는 것으로 간주됩니다.
구문
class CDaoWorkspace : public CObject
멤버
공용 생성자
속성 | 설명 |
---|---|
CDaoWorkspace::CDaoWorkspace | 작업 영역 개체를 생성합니다. 그 후, 전화 Create 또는 Open . |
공용 메서드
이름 | 설명 |
---|---|
CDaoWorkspace::Append | 새로 만든 작업 영역을 데이터베이스 엔진의 작업 영역 컬렉션에 추가합니다. |
CDaoWorkspace::BeginTrans | 작업 영역에서 열려 있는 모든 데이터베이스에 적용되는 새 트랜잭션을 시작합니다. |
CDaoWorkspace::Close | 작업 영역과 작업 영역에 포함된 모든 개체를 닫습니다. 보류 중인 트랜잭션이 롤백됩니다. |
CDaoWorkspace::CommitTrans | 현재 트랜잭션을 완료하고 변경 내용을 저장합니다. |
CDaoWorkspace::CompactDatabase | 데이터베이스를 압축(또는 복제)합니다. |
CDaoWorkspace::Create | 새 DAO 작업 영역 개체를 만듭니다. |
CDaoWorkspace::GetDatabaseCount | 작업 영역의 Databases 컬렉션에 있는 DAO 데이터베이스 개체의 수를 반환합니다. |
CDaoWorkspace::GetDatabaseInfo | 작업 영역의 Databases 컬렉션에 정의된 지정된 DAO 데이터베이스에 대한 정보를 반환합니다. |
CDaoWorkspace::GetIniPath | Windows 레지스트리에서 Microsoft Jet 데이터베이스 엔진의 초기화 설정 위치를 반환합니다. |
CDaoWorkspace::GetIsolateODBCTrans | 동일한 ODBC 데이터 원본을 포함하는 여러 트랜잭션이 데이터 원본에 대한 강제 여러 연결을 통해 격리되는지 여부를 나타내는 값을 반환합니다. |
CDaoWorkspace::GetLoginTimeout | 사용자가 ODBC 데이터베이스에 로그인하려고 할 때 오류가 발생하기 전의 시간(초)을 반환합니다. |
CDaoWorkspace::GetName | 작업 영역 개체의 사용자 정의 이름을 반환합니다. |
CDaoWorkspace::GetUserName | 작업 영역을 만들 때 지정한 사용자 이름을 반환합니다. 작업 영역 소유자의 이름입니다. |
CDaoWorkspace::GetVersion | 작업 영역과 연결된 데이터베이스 엔진의 버전을 포함하는 문자열을 반환합니다. |
CDaoWorkspace::GetWorkspaceCount | 데이터베이스 엔진의 작업 영역 컬렉션에 있는 DAO 작업 영역 개체의 수를 반환합니다. |
CDaoWorkspace::GetWorkspaceInfo | 데이터베이스 엔진의 작업 영역 컬렉션에 정의된 지정된 DAO 작업 영역에 대한 정보를 반환합니다. |
CDaoWorkspace::Idle | 데이터베이스 엔진이 백그라운드 작업을 수행할 수 있도록 허용합니다. |
CDaoWorkspace::IsOpen | 작업 영역이 열려 있으면 0이 아닌 값을 반환합니다. |
CDaoWorkspace::Open | DAO의 기본 작업 영역과 연결된 작업 영역 개체를 명시적으로 엽니다. |
CDaoWorkspace::RepairDatabase | 손상된 데이터베이스를 복구하려고 시도합니다. |
CDaoWorkspace::Rollback | 현재 트랜잭션을 종료하고 변경 내용을 저장하지 않습니다. |
CDaoWorkspace::SetDefaultPassword | 특정 암호 없이 작업 영역 개체를 만들 때 데이터베이스 엔진에서 사용하는 암호를 설정합니다. |
CDaoWorkspace::SetDefaultUser | 특정 사용자 이름 없이 작업 영역 개체를 만들 때 데이터베이스 엔진에서 사용하는 사용자 이름을 설정합니다. |
CDaoWorkspace::SetIniPath | Windows 레지스트리에서 Microsoft Jet 데이터베이스 엔진의 초기화 설정 위치를 설정합니다. |
CDaoWorkspace::SetIsolateODBCTrans | 동일한 ODBC 데이터 원본을 포함하는 여러 트랜잭션이 데이터 원본에 대한 여러 연결을 강제하여 격리되는지 여부를 지정합니다. |
CDaoWorkspace::SetLoginTimeout | 사용자가 ODBC 데이터 원본에 로그인하려고 할 때 오류가 발생하기 전의 시간(초)을 설정합니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CDaoWorkspace::m_pDAOWorkspace | 기본 DAO 작업 영역 개체를 가리킵니다. |
설명
대부분의 경우 여러 작업 영역이 필요하지 않으며 명시적 작업 영역 개체를 만들 필요가 없습니다. 데이터베이스 및 레코드 집합 개체를 열면 DAO의 기본 작업 영역을 사용합니다. 그러나 필요한 경우 더 많은 작업 영역 개체를 만들어 한 번에 여러 세션을 실행할 수 있습니다. 각 작업 영역 개체는 자체 Databases 컬렉션에 열려 있는 여러 데이터베이스 개체를 포함할 수 있습니다. MFC에서 작업 영역은 주로 트랜잭션 관리자로, 열려 있는 데이터베이스 집합을 모두 동일한 "트랜잭션 공간"에 지정합니다.
참고 항목
DAO 데이터베이스 클래스는 ODBC(Open Database Connectivity)를 기반으로 하는 MFC 데이터베이스 클래스와 다릅니다. 모든 DAO 데이터베이스 클래스 이름에는 "CDao" 접두사가 있습니다. 일반적으로 DAO를 기반으로 하는 MFC 클래스는 ODBC를 기반으로 하는 MFC 클래스보다 더 많은 기능을 제공합니다. DAO 기반 클래스는 ODBC 드라이버를 포함하여 Microsoft Jet 데이터베이스 엔진을 통해 데이터에 액세스합니다. 또한 DAO를 직접 호출하지 않고도 데이터베이스를 만들고 클래스를 통해 테이블과 필드를 추가하는 등의 DDL(데이터 정의 언어) 작업을 지원합니다.
기능
클래스 CDaoWorkspace
는 다음을 제공합니다.
필요한 경우 데이터베이스 엔진을 초기화하여 만든 기본 작업 영역에 대한 명시적 액세스입니다. 일반적으로 데이터베이스 및 레코드 집합 개체를 만들어 DAO의 기본 작업 영역을 암시적으로 사용합니다.
트랜잭션이 작업 영역에서 열려 있는 모든 데이터베이스에 적용되는 트랜잭션 공간입니다. 별도의 트랜잭션 공간을 관리하기 위해 더 많은 작업 영역을 만들 수 있습니다.
기본 Microsoft Jet 데이터베이스 엔진의 여러 속성에 대한 인터페이스입니다(정적 멤버 함수 참조). 작업 영역을 열거나 만들거나, 열거나 만들기 전에 정적 멤버 함수를 호출하면 데이터베이스 엔진이 초기화됩니다.
추가된 모든 활성 작업 영역을 저장하는 데이터베이스 엔진의 작업 영역 컬렉션에 액세스합니다. 컬렉션에 추가하지 않고 작업 영역을 만들고 작업할 수도 있습니다.
보안
MFC는 보안 제어에 사용되는 DAO에서 사용자 및 그룹 컬렉션을 구현하지 않습니다. DAO의 이러한 측면이 필요한 경우 DAO 인터페이스에 대한 직접 호출을 통해 직접 프로그래밍해야 합니다. 자세한 내용은 Technical Note 54를 참조하세요.
사용
클래스 CDaoWorkspace
를 사용하여 다음을 수행할 수 있습니다.
기본 작업 영역을 명시적으로 엽니다.
일반적으로 새 CDaoDatabase 또는 CDaoRecordset 개체를 열 때 기본 작업 영역의 사용은 암시적입니다. 그러나 명시적으로 액세스해야 할 수도 있습니다. 예를 들어 데이터베이스 엔진 속성 또는 Workspaces 컬렉션에 액세스합니다. 아래의 "기본 작업 영역의 암시적 사용"을 참조하세요.
새 작업 영역을 만듭니다. Workspaces 컬렉션에 추가하려면 Append를 호출합니다.
Workspaces 컬렉션에서 기존 작업 영역을 엽니다.
Workspaces 컬렉션에 아직 없는 새 작업 영역 만들기는 멤버 만들기 함수 아래에 설명되어 있습니다. 작업 영역 개체는 데이터베이스 엔진 세션 간에 어떠한 방식으로도 유지되지 않습니다. 애플리케이션이 MFC를 정적으로 연결하는 경우 애플리케이션을 종료하면 데이터베이스 엔진이 초기화되지 않습니다. 애플리케이션이 MFC와 동적으로 연결되는 경우 MFC DLL이 언로드될 때 데이터베이스 엔진이 초기화되지 않습니다.
기본 작업 영역을 명시적으로 열거나 Workspaces 컬렉션에서 기존 작업 영역을 여는 방법은 Open 멤버 함수 아래에 설명되어 있습니다.
Close 멤버 함수를 사용하여 작업 영역을 닫아 작업 영역 세션을 종료합니다. Close
닫지 않은 데이터베이스를 닫고 커밋되지 않은 트랜잭션을 롤백합니다.
트랜잭션
DAO는 작업 영역 수준에서 트랜잭션을 관리합니다. 따라서 열려 있는 데이터베이스가 여러 개 있는 작업 영역의 트랜잭션은 모든 데이터베이스에 적용됩니다. 예를 들어 두 데이터베이스에 커밋되지 않은 업데이트가 있고 CommitTrans를 호출하는 경우 모든 업데이트가 커밋됩니다. 트랜잭션을 단일 데이터베이스로 제한하려면 별도의 작업 영역 개체가 필요합니다.
기본 작업 영역의 암시적 사용
MFC는 다음과 같은 상황에서 DAO의 기본 작업 영역을 암시적으로 사용합니다.
새
CDaoDatabase
개체를 만들지만 기존 개체를CDaoWorkspace
통해 만들지 않으면 MFC는 DAO의 기본 작업 영역에 해당하는 임시 작업 영역 개체를 만듭니다. 여러 데이터베이스에 대해 이 작업을 수행하는 경우 모든 데이터베이스 개체가 기본 작업 영역과 연결됩니다. 데이터 멤버를 통해CDaoDatabase
데이터베이스의 작업 영역에 액세스할 수 있습니다.마찬가지로 개체에
CDaoRecordset
대한 포인터CDaoDatabase
를 제공하지 않고 개체를 만드는 경우 MFC는 임시 데이터베이스 개체를 만들고 확장에 따라 임시 작업 영역 개체를 만듭니다. 데이터 멤버를 통해CDaoRecordset
레코드 집합의 데이터베이스와 간접적으로 해당 작업 영역에 액세스할 수 있습니다.
기타 작업
손상된 데이터베이스 복구 또는 데이터베이스 압축과 같은 다른 데이터베이스 작업도 제공됩니다.
DAO를 직접 호출하고 DAO 보안에 대한 자세한 내용은 Technical Note 54를 참조하세요.
상속 계층 구조
CDaoWorkspace
요구 사항
머리글: afxdao.h
CDaoWorkspace::Append
Create를 호출한 후 이 멤버 함수를 호출 합니다.
virtual void Append();
설명
Append
는 새로 만든 작업 영역 개체를 데이터베이스 엔진의 Workspaces 컬렉션에 추가합니다. 작업 영역은 데이터베이스 엔진 세션 간에 유지되지 않습니다. 디스크가 아닌 메모리에만 저장됩니다. 작업 영역을 추가할 필요가 없습니다. 그렇지 않으면 계속 사용할 수 있습니다.
추가된 작업 영역은 Close 멤버 함수를 호출할 때까지 작업 영역 컬렉션에 활성, 열린 상태로 유지됩니다.
관련 정보는 DAO 도움말의 "추가 메서드" 항목을 참조하세요.
CDaoWorkspace::BeginTrans
이 멤버 함수를 호출하여 트랜잭션을 시작합니다.
void BeginTrans();
설명
호출 BeginTrans
후에는 트랜잭션을 커밋할 때 데이터 또는 데이터베이스 구조에 대한 업데이트가 적용됩니다. 작업 영역은 단일 트랜잭션 공간을 정의하므로 트랜잭션은 작업 영역의 열려 있는 모든 데이터베이스에 적용됩니다. 트랜잭션을 완료하는 방법에는 두 가지가 있습니다.
CommitTrans 멤버 함수를 호출하여 트랜잭션을 커밋하고 변경 내용을 데이터 원본에 저장합니다.
또는 Rollback 멤버 함수를 호출하여 트랜잭션을 취소합니다.
트랜잭션이 보류 중인 동안 작업 영역 개체 또는 데이터베이스 개체를 닫으면 보류 중인 모든 트랜잭션이 롤백됩니다.
한 ODBC 데이터 원본의 트랜잭션을 다른 ODBC 데이터 원본의 트랜잭션과 격리해야 하는 경우 SetIsolateODBCTrans 멤버 함수를 참조하세요.
CDaoWorkspace::CDaoWorkspace
CDaoWorkspace
개체를 생성합니다.
CDaoWorkspace();
설명
C++ 개체를 생성한 후에는 다음 두 가지 옵션이 있습니다.
개체의 Open 멤버 함수를 호출하여 기본 작업 영역을 열거나 Workspaces 컬렉션에서 기존 개체를 엽니다.
또는 개체의 멤버 만들기 함수를 호출하여 새 DAO 작업 영역 개체를 만듭니다. 이렇게 하면 개체를 통해 참조할 수 있는 새 작업 영역 세션이
CDaoWorkspace
명시적으로 시작됩니다. 호출Create
한 후 데이터베이스 엔진의 작업 영역 컬렉션에 작업 영역을 추가하려면 Append를 호출할 수 있습니다.
개체를 명시적으로 만들어야 하는 경우에 대한 자세한 내용은 CDaoWorkspace 에 대한 클래스 개요를 CDaoWorkspace
참조하세요. 일반적으로 작업 영역을 지정하지 않고 CDaoDatabase 개체를 열거나 데이터베이스 개체를 지정하지 않고 CDaoRecordset 개체를 열 때 암시적으로 만든 작업 영역을 사용합니다. 이러한 방식으로 만든 MFC DAO 개체는 DAO의 기본 작업 영역을 사용합니다. 이 작업 영역은 한 번 만들어 다시 사용됩니다.
작업 영역 및 포함된 개체를 해제하려면 작업 영역 개체의 Close 멤버 함수를 호출합니다.
CDaoWorkspace::Close
이 멤버 함수를 호출하여 작업 영역 개체를 닫습니다.
virtual void Close();
설명
열려 있는 작업 영역 개체를 닫으면 기본 DAO 개체가 해제되고 작업 영역이 Workspaces 컬렉션의 멤버인 경우 컬렉션에서 제거됩니다. 호출 Close
은 좋은 프로그래밍 방식입니다.
주의
작업 영역 개체를 닫으면 작업 영역에서 열려 있는 모든 데이터베이스가 닫힙니다. 이로 인해 데이터베이스에서 열려 있는 레코드 집합도 닫히고 보류 중인 편집 또는 업데이트가 롤백됩니다. 관련 정보는 CDaoDatabase::Close, CDaoRecordset::Close, CDaoTableDef::Close 및 CDaoQueryDef::Close 멤버 함수를 참조하세요.
작업 영역 개체는 영구적이지 않습니다. 참조가 있는 동안에만 존재합니다. 즉, 데이터베이스 엔진 세션이 종료되면 작업 영역 및 데이터베이스 컬렉션이 유지되지 않습니다. 작업 영역 및 데이터베이스를 다시 열어 다음 세션에 대해 다시 만들어야 합니다.
관련 정보는 DAO 도움말의 "Close 메서드" 항목을 참조하세요.
CDaoWorkspace::CommitTrans
이 멤버 함수를 호출하여 편집 및 업데이트 그룹을 작업 영역의 하나 이상의 데이터베이스에 저장하는 트랜잭션을 커밋합니다.
void CommitTrans();
설명
트랜잭션은 BeginTrans 호출부터 시작하여 데이터베이스의 데이터 또는 해당 구조에 대한 일련의 변경 내용으로 구성됩니다. 트랜잭션을 완료하면 트랜잭션을 커밋하거나 롤백을 사용하여 롤백(변경 취소)합니다. 기본적으로 트랜잭션이 없으면 레코드에 대한 업데이트가 즉시 커밋됩니다. 호출 BeginTrans
하면 호출 CommitTrans
할 때까지 업데이트 약정이 지연됩니다.
주의
하나의 작업 영역 내에서 트랜잭션은 항상 작업 영역으로 전역화되며 하나의 데이터베이스 또는 레코드 집합으로만 제한되지 않습니다. 작업 영역 트랜잭션 CommitTrans
내에서 둘 이상의 데이터베이스 또는 레코드 집합에서 작업을 수행하는 경우 보류 중인 모든 업데이트를 커밋하고 해당 데이터베이스 및 Rollback
레코드 집합에 대한 모든 작업을 복원합니다.
보류 중인 트랜잭션이 있는 데이터베이스 또는 작업 영역을 닫으면 트랜잭션이 모두 롤백됩니다.
참고 항목
이는 2단계 커밋 메커니즘이 아닙니다. 한 업데이트가 커밋에 실패하면 다른 업데이트도 커밋됩니다.
CDaoWorkspace::CompactDatabase
지정된 Microsoft Jet()를 압축하려면 이 멤버 함수를 호출합니다. MDB) 데이터베이스.
static void PASCAL CompactDatabase(
LPCTSTR lpszSrcName,
LPCTSTR lpszDestName,
LPCTSTR lpszLocale = dbLangGeneral,
int nOptions = 0);
static void PASCAL CompactDatabase(
LPCTSTR lpszSrcName,
LPCTSTR lpszDestName,
LPCTSTR lpszLocale,
int nOptions,
LPCTSTR lpszPassword);
매개 변수
lpszSrcName
닫힌 기존 데이터베이스의 이름입니다. 전체 경로 및 파일 이름일 수 있습니다(예: "C:\\MYDB). MDB". 파일 이름에 확장명은 지정해야 합니다. 네트워크에서 UNC(Uniform Naming Convention)를 지원하는 경우 네트워크 경로(예: "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB)를 지정할 수도 있습니다. MDB". ("\"는 C++ 이스케이프 문자이므로 경로 문자열에 이중 백슬라이시가 필요합니다.)
lpszDestName
만드는 압축된 데이터베이스의 전체 경로입니다. lpszSrcName과 마찬가지로 네트워크 경로를 지정할 수도 있습니다. lpszDestName 인수를 사용하여 lpszSrcName과 동일한 데이터베이스 파일을 지정할 수 없습니다.
lpszPassword
암호로 보호된 데이터베이스를 압축하려는 경우에 사용되는 암호입니다. 암호를 사용하는 버전을 CompactDatabase
사용하는 경우 모든 매개 변수를 제공해야 합니다. 또한 연결 매개 변수이므로 다음과 같이 특수 서식이 필요합니다. ;P WD= lpszPassword입니다. 예: ;P WD="Happy". (선행 세미콜론이 필요합니다.)
lpszLocale
lpszDestName을 만들기 위한 정렬 순서를 지정하는 데 사용되는 문자열 식입니다. 기본값 dbLangGeneral
(아래 참조)을 수락하여 이 인수를 생략하면 새 데이터베이스의 로캘은 이전 데이터베이스와 동일합니다. 가능한 값은 다음과 같습니다.
dbLangGeneral
영어, 독일어, 프랑스어, 포르투갈어, 이탈리아어 및 최신 스페인어dbLangArabic
아랍어dbLangCyrillic
러시아어dbLangCzech
체코어dbLangDutch
네덜란드어dbLangGreek
그리스어dbLangHebrew
히브리어dbLangHungarian
헝가리어dbLangIcelandic
아이슬란드어dbLangNordic
북유럽 언어(Microsoft Jet 데이터베이스 엔진 버전 1.0에만 해당)dbLangNorwdan
노르웨이어 및 덴마크어dbLangPolish
폴란드어dbLangSpanish
번체 스페인어dbLangSwedfin
스웨덴어 및 핀란드어dbLangTurkish
터키어
nOptions
대상 데이터베이스 lpszDestName에 대한 하나 이상의 옵션을 나타냅니다. 기본값을 수락하여 이 인수를 생략하면 lpszDestName의 암호화 및 lpszSrcName 버전이 동일합니다. 비트 OR 연산자를 dbEncrypt
사용하여 버전 옵션 중 하나와 또는 dbDecrypt
옵션을 결합할 수 있습니다. 데이터베이스 엔진 버전이 아닌 데이터베이스 형식을 지정하는 가능한 값은 다음과 같습니다.
dbEncrypt
압축하는 동안 데이터베이스를 암호화합니다.dbDecrypt
압축하는 동안 데이터베이스의 암호를 해독합니다.dbVersion10
압축하는 동안 Microsoft Jet 데이터베이스 엔진 버전 1.0을 사용하는 데이터베이스를 만듭니다.dbVersion11
압축하는 동안 Microsoft Jet 데이터베이스 엔진 버전 1.1을 사용하는 데이터베이스를 만듭니다.dbVersion20
압축하는 동안 Microsoft Jet 데이터베이스 엔진 버전 2.0을 사용하는 데이터베이스를 만듭니다.dbVersion30
압축하는 동안 Microsoft Jet 데이터베이스 엔진 버전 3.0을 사용하는 데이터베이스를 만듭니다.
옵션 인수를 사용 dbEncrypt
하거나 dbDecrypt
옵션 인수에서 데이터베이스를 압축할 때 암호화할지 아니면 암호 해독할지를 지정할 수 있습니다. 암호화 상수는 생략하거나 둘 다 dbDecrypt
포함하는 경우와 dbEncrypt
lpszDestName
동일한 암호화lpszSrcName
가 있습니다. 옵션 인수에서 버전 상수 중 하나를 사용하여 압축된 데이터베이스의 데이터 형식 버전을 지정할 수 있습니다. 이 상수는 데이터 형식의 버전에만 영향을 줍니다 lpszDestName
. 하나의 버전 상수만 지정할 수 있습니다. 버전 상수 lpszDestName
lpszSrcName
는 생략하면 . 같거나 이후 lpszSrcName
버전으로만 압축 lpszDestName
할 수 있습니다.
주의
데이터베이스가 암호화되지 않은 경우 사용자/암호 보안을 구현하더라도 데이터베이스를 구성하는 이진 디스크 파일을 직접 읽을 수 있습니다.
설명
데이터베이스에서 데이터를 변경하면 데이터베이스 파일이 조각화되어 필요한 것보다 더 많은 디스크 공간을 사용할 수 있습니다. 주기적으로 데이터베이스 파일을 조각 모음하도록 데이터베이스를 압축해야 합니다. 압축된 데이터베이스는 일반적으로 더 작습니다. 데이터베이스를 복사하고 압축하는 동안 데이터 형식의 정렬 순서, 암호화 또는 버전을 변경하도록 선택할 수도 있습니다.
주의
멤버 함수는 CompactDatabase
전체 Microsoft Access 데이터베이스를 한 버전에서 다른 버전으로 올바르게 변환하지 않습니다. 데이터 형식만 변환됩니다. 양식 및 보고서와 같은 Microsoft Access 정의 개체는 변환되지 않습니다. 그러나 데이터가 올바르게 변환됩니다.
팁
데이터베이스 파일을 복사하는 데 사용할 CompactDatabase
수도 있습니다.
데이터베이스 압축에 대한 자세한 내용은 DAO 도움말의 "CompactDatabase 메서드" 항목을 참조하세요.
CDaoWorkspace::Create
이 멤버 함수를 호출하여 새 DAO 작업 영역 개체를 만들고 MFC CDaoWorkspace
개체와 연결합니다.
virtual void Create(
LPCTSTR lpszName,
LPCTSTR lpszUserName,
LPCTSTR lpszPassword);
매개 변수
lpszName
새 작업 영역 개체의 이름을 고유하게 지정하는 최대 14자의 문자열입니다. 이름을 제공해야 합니다. 관련 정보는 DAO 도움말의 "Name 속성" 항목을 참조하세요.
lpszUserName
작업 영역 소유자의 사용자 이름입니다. 요구 사항은 SetDefaultUser 멤버 함수에 대한 lpszDefaultUser 매개 변수를 참조하세요. 관련 정보는 DAO 도움말의 "UserName 속성" 항목을 참조하세요.
lpszPassword
새 작업 영역 개체의 암호입니다. 암호는 최대 14자까지 가능하며 ASCII 0(null)을 제외한 모든 문자를 포함할 수 있습니다. 비밀번호는 대소문자를 구분합니다. 관련 정보는 DAO 도움말의 "암호 속성" 항목을 참조하세요.
설명
전체 생성 프로세스는 다음과 같습니다.
CDaoWorkspace 개체를 생성합니다.
개체의
Create
멤버 함수를 호출하여 기본 DAO 작업 영역을 만듭니다. 작업 영역 이름을 지정해야 합니다.필요에 따라 데이터베이스 엔진의 작업 영역 컬렉션에 작업 영역을 추가하려면 Append를 호출합니다. 작업 영역을 추가하지 않고 작업 영역으로 작업할 수 있습니다.
호출 후 Create
작업 영역 개체는 사용 준비가 된 열린 상태입니다. 이후에Create
는 전화를 걸 Open
지 않습니다. 작업 영역 컬렉션에 작업 영역이 이미 있는 경우 호출 Create
하지 않습니다. Create
애플리케이션에 대해 아직 초기화되지 않은 경우 데이터베이스 엔진을 초기화합니다.
CDaoWorkspace::GetDatabaseCount
이 멤버 함수를 호출하여 작업 영역의 Databases 컬렉션에 있는 DAO 데이터베이스 개체의 수를 검색합니다. 작업 영역에서 열려 있는 데이터베이스의 수입니다.
short GetDatabaseCount();
Return Value
작업 영역에서 열려 있는 데이터베이스의 수입니다.
설명
GetDatabaseCount
는 작업 영역의 Databases 컬렉션에서 정의된 모든 데이터베이스를 반복해야 하는 경우에 유용합니다. 컬렉션에서 지정된 데이터베이스에 대한 정보를 가져오려면 GetDatabaseInfo를 참조하세요. 일반적인 사용법은 열려 있는 데이터베이스 수를 호출 GetDatabaseCount
한 다음 반복 호출에 대해 해당 번호를 루프 인덱스로 사용하는 것입니다 GetDatabaseInfo
.
CDaoWorkspace::GetDatabaseInfo
이 멤버 함수를 호출하여 작업 영역에서 열려 있는 데이터베이스에 대한 다양한 종류의 정보를 가져옵니다.
void GetDatabaseInfo(
int nIndex,
CDaoDatabaseInfo& dbinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetDatabaseInfo(
LPCTSTR lpszName,
CDaoDatabaseInfo& dbinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
매개 변수
nIndex
인덱스별 조회를 위해 작업 영역의 Databases 컬렉션에 있는 데이터베이스 개체의 인덱스(0부터 시작)입니다.
dbinfo
요청된 정보를 반환하는 CDaoDatabaseInfo 개체에 대한 참조입니다.
dwInfoOptions
검색할 데이터베이스에 대한 정보를 지정하는 옵션입니다. 사용 가능한 옵션은 함수가 반환되는 원인과 함께 여기에 나열됩니다.
AFX_DAO_PRIMARY_INFO(기본값) 이름, 업다이블, 트랜잭션
AFX_DAO_SECONDARY_INFO 기본 정보 더하기: 버전, 정렬 순서, 쿼리 시간 제한
AFX_DAO_ALL_INFO 기본 및 보조 정보 더하기: 연결
lpszName
이름별로 조회할 데이터베이스 개체의 이름입니다. 이름은 새 작업 영역 개체의 이름을 고유하게 지정하는 최대 14자의 문자열입니다.
설명
함수의 한 버전을 사용하면 인덱스별로 데이터베이스를 조회할 수 있습니다. 다른 버전을 사용하면 이름으로 데이터베이스를 조회할 수 있습니다.
dbinfo에서 반환된 정보에 대한 설명은 CDaoDatabaseInfo 구조를 참조하세요. 이 구조체에는 dwInfoOptions 설명 에 나열된 정보 항목에 해당하는 멤버가 있습니다. 한 수준에서 정보를 요청하면 이전 수준에 대한 정보도 얻을 수 있습니다.
CDaoWorkspace::GetIniPath
이 멤버 함수를 호출하여 Windows 레지스트리에서 Microsoft Jet 데이터베이스 엔진의 초기화 설정 위치를 가져옵니다.
static CString PASCAL GetIniPath();
Return Value
CString
레지스트리 위치를 포함하는 A.
설명
이 위치를 사용하여 데이터베이스 엔진의 설정에 대한 정보를 가져올 수 있습니다. 반환되는 정보는 실제로 레지스트리 하위 키의 이름입니다.
관련 정보는 DAO 도움말의 "IniPath 속성" 및 "데이터 액세스에 대한 Windows 레지스트리 설정 사용자 지정" 항목을 참조하세요.
CDaoWorkspace::GetIsolateODBCTrans
이 멤버 함수를 호출하여 작업 영역에 대한 DAO IsolateODBCTrans 속성의 현재 값을 가져옵니다.
BOOL GetIsolateODBCTrans();
Return Value
ODBC 트랜잭션이 격리된 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
경우에 따라 동일한 ODBC 데이터베이스에 보류 중인 여러 동시 트랜잭션이 필요할 수 있습니다. 이렇게 하려면 각 트랜잭션에 대해 별도의 작업 영역을 열어야 합니다. 각 작업 영역이 데이터베이스에 대한 자체 ODBC 연결을 가질 수 있지만 이로 인해 시스템 성능이 저하됩니다. 트랜잭션 격리는 일반적으로 필요하지 않으므로 동일한 사용자가 연 여러 작업 영역 개체의 ODBC 연결은 기본적으로 공유됩니다.
Microsoft SQL Server와 같은 일부 ODBC 서버는 단일 연결에서 동시 트랜잭션을 허용하지 않습니다. 이러한 데이터베이스에 대해 보류 중인 트랜잭션이 한 번에 둘 이상 있어야 하는 경우 열자마자 각 작업 영역에서 IsolateODBCTrans 속성을 TRUE로 설정합니다. 이렇게 하면 각 작업 영역에 대해 별도의 ODBC 연결이 강제로 수행됩니다.
관련 정보는 DAO 도움말의 "IsolateODBCTrans 속성" 항목을 참조하세요.
CDaoWorkspace::GetLoginTimeout
이 멤버 함수를 호출하여 작업 영역에 대한 DAO LoginTimeout 속성의 현재 값을 가져옵니다.
static short PASCAL GetLoginTimeout();
Return Value
ODBC 데이터베이스에 로그인하려고 할 때 오류가 발생하기 전의 시간(초)입니다.
설명
이 값은 ODBC 데이터베이스에 로그인하려고 할 때 오류가 발생하기 전의 시간(초)을 나타냅니다. 기본 LoginTimeout 설정은 20초입니다. LoginTimeout을 0으로 설정하면 시간 제한이 발생하지 않으며 데이터 원본과의 통신이 응답하지 않을 수 있습니다.
Microsoft SQL Server와 같은 ODBC 데이터베이스에 로그인하려고 하면 네트워크 오류로 인해 또는 서버가 실행되고 있지 않아 연결이 실패할 수 있습니다. 기본 20초가 연결되기를 기다리는 대신 데이터베이스 엔진이 오류를 생성하기 전에 대기하는 시간을 지정할 수 있습니다. 서버에 로그인하는 작업은 외부 서버 데이터베이스에서 쿼리를 실행하는 것과 같은 여러 이벤트의 일부로 암시적으로 발생합니다.
관련 정보는 DAO 도움말의 "LoginTimeout 속성" 항목을 참조하세요.
CDaoWorkspace::GetName
이 멤버 함수를 호출하여 개체의 기본 CDaoWorkspace
DAO 작업 영역 개체의 사용자 정의 이름을 가져옵니다.
CString GetName();
Return Value
CString
DAO 작업 영역 개체의 사용자 정의 이름을 포함하는 형식입니다.
설명
이 이름은 이름으로 데이터베이스 엔진의 Workspaces 컬렉션에서 DAO 작업 영역 개체에 액세스하는 데 유용합니다.
관련 정보는 DAO 도움말의 "Name 속성" 항목을 참조하세요.
CDaoWorkspace::GetUserName
이 멤버 함수를 호출하여 작업 영역 소유자의 이름을 가져옵니다.
CString GetUserName();
Return Value
CString
작업 영역 개체의 소유자를 나타내는 A입니다.
설명
작업 영역 소유자에 대한 사용 권한을 얻거나 설정하려면 DAO를 직접 호출하여 Permissions 속성 설정을 확인합니다. 이는 사용자가 가지고 있는 사용 권한을 결정합니다. 사용 권한을 사용하려면 SYSTEM이 필요합니다. MDA 파일입니다.
DAO를 직접 호출하는 방법에 대한 자세한 내용은 Technical Note 54를 참조하세요. 관련 정보는 DAO 도움말의 "UserName 속성" 항목을 참조하세요.
CDaoWorkspace::GetVersion
이 멤버 함수를 호출하여 사용 중인 Microsoft Jet 데이터베이스 엔진의 버전을 확인합니다.
static CString PASCAL GetVersion();
Return Value
개체와 연결된 데이터베이스 엔진의 버전을 나타내는 A CString
입니다.
설명
반환되는 값은 "major.minor" 형식의 버전 번호를 나타냅니다. 예를 들어 "3.0"입니다. 제품 버전 번호(예: 3.0)는 버전 번호(3), 마침표 및 릴리스 번호(0)로 구성됩니다.
관련 정보는 DAO 도움말의 "버전 속성" 항목을 참조하세요.
CDaoWorkspace::GetWorkspaceCount
데이터베이스 엔진의 Workspaces 컬렉션에서 DAO 작업 영역 개체 수를 검색하려면 이 멤버 함수를 호출합니다.
short GetWorkspaceCount();
Return Value
Workspaces 컬렉션에 열려 있는 작업 영역의 수입니다.
설명
이 개수에는 컬렉션에 추가되지 않은 열려 있는 작업 영역이 포함되지 않습니다. GetWorkspaceCount
는 Workspaces 컬렉션에서 정의된 모든 작업 영역을 반복해야 하는 경우에 유용합니다. 컬렉션에서 지정된 작업 영역에 대한 정보를 가져오려면 GetWorkspaceInfo를 참조하세요. 일반적인 사용법은 열린 작업 영역 수를 호출 GetWorkspaceCount
한 다음 반복 호출에 대해 해당 번호를 루프 인덱스로 사용하는 것입니다 GetWorkspaceInfo
.
CDaoWorkspace::GetWorkspaceInfo
세션에서 열려 있는 작업 영역에 대한 다양한 종류의 정보를 가져오려면 이 멤버 함수를 호출합니다.
void GetWorkspaceInfo(
int nIndex,
CDaoWorkspaceInfo& wkspcinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetWorkspaceInfo(
LPCTSTR lpszName,
CDaoWorkspaceInfo& wkspcinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
매개 변수
nIndex
인덱스별 조회를 위해 Workspaces 컬렉션에 있는 데이터베이스 개체의 인덱스(0부터 시작)입니다.
wkspcinfo
요청된 정보를 반환하는 CDaoWorkspaceInfo 개체에 대한 참조입니다.
dwInfoOptions
검색할 작업 영역에 대한 정보를 지정하는 옵션입니다. 사용 가능한 옵션은 함수가 반환되는 원인과 함께 여기에 나열됩니다.
AFX_DAO_PRIMARY_INFO(기본값) 이름
AFX_DAO_SECONDARY_INFO 기본 정보 및 사용자 이름
AFX_DAO_ALL_INFO 기본 및 보조 정보 더하기: ODBCTrans 격리
lpszName
이름별로 조회할 작업 영역 개체의 이름입니다. 이름은 새 작업 영역 개체의 이름을 고유하게 지정하는 최대 14자의 문자열입니다.
설명
wkspcinfo에서 반환된 정보에 대한 설명은 CDaoWorkspaceInfo 구조를 참조하세요. 이 구조체에는 dwInfoOptions 설명 에 나열된 정보 항목에 해당하는 멤버가 있습니다. 한 수준에서 정보를 요청하면 이전 수준에 대한 정보도 얻을 수 있습니다.
CDaoWorkspace::Idle
강력한 데이터 처리로 인해 최신이 아닐 수 있는 백그라운드 작업을 수행할 수 있는 기회를 데이터베이스 엔진에 제공하기 위한 호출 Idle
입니다.
static void PASCAL Idle(int nAction = dbFreeLocks);
매개 변수
nAction
유휴 처리 중에 수행할 작업입니다. 현재 유효한 작업은 .입니다 dbFreeLocks
.
설명
이는 레코드 집합의 모든 레코드를 최신 상태로 유지하기에 충분한 백그라운드 처리 시간이 없는 다중 사용자, 멀티태스킹 환경에서도 마찬가지입니다.
참고 항목
Microsoft Jet 데이터베이스 엔진 버전 3.0으로 만든 데이터베이스에서는 호출 Idle
이 필요하지 않습니다. 이전 버전으로 만든 데이터베이스에만 사용합니다 Idle
.
일반적으로 읽기 잠금이 제거되고 로컬 다이나셋 형식 레코드 집합 개체의 데이터는 다른 작업(마우스 이동 포함)이 발생하지 않는 경우에만 업데이트됩니다. 주기적으로 호출 Idle
하는 경우 불필요한 읽기 잠금을 해제하여 백그라운드 처리 작업을 따라잡을 시간을 데이터베이스 엔진에 제공합니다. 상수를 dbFreeLocks
인수로 지정하면 모든 읽기 잠금이 해제될 때까지 처리가 지연됩니다.
이 멤버 함수는 애플리케이션의 여러 인스턴스가 실행되고 있지 않으면 단일 사용자 환경에서 필요하지 않습니다. 멤버 함수는 Idle
데이터베이스 엔진이 데이터를 디스크에 강제로 플러시하고 메모리에 대한 잠금을 해제하므로 다중 사용자 환경에서 성능을 높일 수 있습니다. 작업을 트랜잭션의 일부로 만들어 읽기 잠금을 해제할 수도 있습니다.
관련 정보는 DAO 도움말의 "유휴 방법" 항목을 참조하세요.
CDaoWorkspace::IsOpen
이 멤버 함수를 호출하여 개체가 CDaoWorkspace
열려 있는지 여부를 확인합니다. 즉, MFC 개체가 Open 호출 또는 Create 호출을 통해 초기화되었습니다.
BOOL IsOpen() const;
Return Value
작업 영역 개체가 열려 있으면 0이 아닌 경우 그렇지 않으면 0입니다.
설명
열려 있는 상태에 있는 작업 영역의 멤버 함수를 호출할 수 있습니다.
CDaoWorkspace::m_pDAOWorkspace
기본 DAO 작업 영역 개체에 대한 포인터입니다.
설명
기본 DAO 개체에 직접 액세스해야 하는 경우 이 데이터 멤버를 사용합니다. 이 포인터를 통해 DAO 개체의 인터페이스를 호출할 수 있습니다.
DAO 개체에 직접 액세스하는 방법에 대한 자세한 내용은 Technical Note 54를 참조하세요.
CDaoWorkspace::Open
DAO의 기본 작업 영역과 연결된 작업 영역 개체를 명시적으로 엽니다.
virtual void Open(LPCTSTR lpszName = NULL);
매개 변수
lpszName
열 DAO 작업 영역 개체의 이름입니다. 작업 영역 이름을 고유하게 지정하는 문자열은 최대 14자입니다. 기본값 NULL을 적용하여 기본 작업 영역을 명시적으로 엽니다. 명명 요구 사항은 Create에 대한 lpszName 매개 변수를 참조하세요. 관련 정보는 DAO 도움말의 "Name 속성" 항목을 참조하세요.
설명
개체를 생성한 CDaoWorkspace
후 이 멤버 함수를 호출하여 다음 중 하나를 수행합니다.
기본 작업 영역을 명시적으로 엽니다. lpszName에 대해 NULL을 전달합니다.
이름으로 Workspaces 컬렉션의 멤버인 기존
CDaoWorkspace
개체를 엽니다. 기존 작업 영역 개체의 유효한 이름을 전달합니다.
Open
는 작업 영역 개체를 열린 상태로 만들고 애플리케이션에 대해 아직 초기화되지 않은 경우 데이터베이스 엔진을 초기화합니다.
작업 영역을 연 후에만 많은 CDaoWorkspace
멤버 함수를 호출할 수 있지만 데이터베이스 엔진에서 작동하는 다음 멤버 함수는 C++ 개체를 생성한 후 호출 Open
하기 전에 사용할 수 있습니다.
CDaoWorkspace::RepairDatabase
Microsoft Jet 데이터베이스 엔진에 액세스하는 손상된 데이터베이스를 복구해야 하는 경우 이 멤버 함수를 호출합니다.
static void PASCAL RepairDatabase(LPCTSTR lpszName);
매개 변수
lpszName
기존 Microsoft Jet 엔진 데이터베이스 파일의 경로 및 파일 이름입니다. 경로를 생략하면 현재 디렉터리만 검색됩니다. 시스템에서 UNC(Uniform Naming Convention)를 지원하는 경우 네트워크 경로(예: "\\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB)를 지정할 수도 있습니다. MDB". ("\"는 C++ 이스케이프 문자이므로 경로 문자열에 이중 백슬라이시가 필요합니다.)
설명
복구하기 전에 lpszName으로 지정된 데이터베이스를 닫아야 합니다. 다중 사용자 환경에서는 복구하는 동안 다른 사용자가 lpszName을 열 수 없습니다. lpszName이 닫혀 있지 않거나 단독으로 사용할 수 없는 경우 오류가 발생합니다.
이 멤버 함수는 불완전한 쓰기 작업으로 인해 손상된 것으로 표시된 데이터베이스를 복구하려고 시도합니다. 이 문제는 정전 또는 컴퓨터 하드웨어 문제로 인해 Microsoft Jet 데이터베이스 엔진을 사용하는 애플리케이션이 예기치 않게 닫혀 있는 경우에 발생할 수 있습니다. 작업을 완료하고 Close 멤버 함수를 호출하거나 일반적인 방식으로 애플리케이션을 종료하면 데이터베이스가 손상된 것으로 표시되지 않습니다.
참고 항목
데이터베이스를 복구한 후에는 CompactDatabase 멤버 함수를 사용하여 압축하여 파일을 조각 모음하고 디스크 공간을 복구하는 것이 좋습니다.
데이터베이스 복구에 대한 자세한 내용은 DAO 도움말의 "RepairDatabase 메서드" 항목을 참조하세요.
CDaoWorkspace::Rollback
이 멤버 함수를 호출하여 현재 트랜잭션을 종료하고 트랜잭션이 시작되기 전에 작업 영역의 모든 데이터베이스를 해당 상태로 복원합니다.
void Rollback();
설명
주의
하나의 작업 영역 개체 내에서 트랜잭션은 항상 작업 영역으로 전역화되며 하나의 데이터베이스 또는 레코드 집합으로만 제한되지 않습니다. 작업 영역 트랜잭션 Rollback
내에서 둘 이상의 데이터베이스 또는 레코드 집합에서 작업을 수행하는 경우 모든 데이터베이스 및 레코드 집합에 대한 모든 작업을 복원합니다.
보류 중인 트랜잭션을 저장하거나 롤백하지 않고 작업 영역 개체를 닫으면 트랜잭션이 자동으로 롤백됩니다. BeginTrans를 먼저 호출하지 않고 CommitTrans 및 Rollback
를 호출하면 오류가 발생합니다.
참고 항목
트랜잭션을 시작하면 데이터베이스 엔진은 워크스테이션의 TEMP 환경 변수에 지정된 디렉터리에 보관된 파일에 해당 작업을 기록합니다. 트랜잭션 로그 파일이 TEMP 드라이브에서 사용 가능한 스토리지를 소모하는 경우 데이터베이스 엔진으로 인해 MFC가 throw CDaoException
됩니다(DAO 오류 2004). 이 시점에서 호출 CommitTrans
하는 경우 확정되지 않은 수의 작업이 커밋되지만 나머지 미완성 작업이 손실되고 작업을 다시 시작해야 합니다. 호출 Rollback
하면 트랜잭션 로그가 해제되고 트랜잭션의 모든 작업이 롤백됩니다.
CDaoWorkspace::SetDefaultPassword
특정 암호 없이 작업 영역 개체를 만들 때 데이터베이스 엔진에서 사용하는 기본 암호를 설정하려면 이 멤버 함수를 호출합니다.
static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword);
매개 변수
lpszPassword
기본 암호입니다. 암호는 최대 14자까지 가능하며 ASCII 0(null)을 제외한 모든 문자를 포함할 수 있습니다. 비밀번호는 대소문자를 구분합니다.
설명
설정한 기본 암호는 호출 후 만든 새 작업 영역에 적용됩니다. 후속 작업 영역을 만들 때 만들기 호출에서 암호를 지정할 필요가 없습니다.
이 멤버 함수를 사용하려면 다음을 수행합니다.
개체를
CDaoWorkspace
생성하지만 호출Create
하지 않습니다.호출
SetDefaultPassword
하고, 원하는 경우 SetDefaultUser를 호출합니다.암호를 지정하지 않고 이 작업 영역 개체 또는 후속 작업 영역 개체를 호출
Create
합니다.
기본적으로 DefaultUser 속성은 "admin"으로 설정되고 DefaultPassword 속성은 빈 문자열("")로 설정됩니다.
보안에 대한 자세한 내용은 DAO 도움말의 "Permissions 속성" 항목을 참조하세요. 관련 정보는 DAO 도움말의 "DefaultPassword 속성" 및 "DefaultUser 속성" 항목을 참조하세요.
CDaoWorkspace::SetDefaultUser
특정 사용자 이름 없이 작업 영역 개체를 만들 때 데이터베이스 엔진에서 사용하는 기본 사용자 이름을 설정하려면 이 멤버 함수를 호출합니다.
static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser);
매개 변수
lpszDefaultUser
기본 사용자 이름입니다. 사용자 이름은 1~20자이며 알파벳 문자를 포함할 수 있습니다. 강조 문자, 숫자, 공백 및 기호를 제외한 다음과 "
같습니다. (따옴표), (슬래시), /
(슬래시), \
(대괄호), [ ]
(콜론), :
|
(파이프), <
(부호보다 작음), >
(더하기 기호), +
(등호), =
(세미콜론), ;
(쉼표), ,
(물음표), (별표), *
선행 공백 및 제어 문자 (ASCII 00 ~ ASCII 31). 관련 정보는 DAO 도움말의 "UserName 속성" 항목을 참조하세요.
설명
설정한 기본 사용자 이름은 호출 후 만든 새 작업 영역에 적용됩니다. 후속 작업 영역을 만들 때 만들기 호출에서 사용자 이름을 지정할 필요가 없습니다.
이 멤버 함수를 사용하려면 다음을 수행합니다.
개체를
CDaoWorkspace
생성하지만 호출Create
하지 않습니다.호출
SetDefaultUser
하고, 원하는 경우 SetDefaultPassword를 호출합니다.사용자 이름을 지정하지 않고 이 작업 영역 개체 또는 후속 작업 영역 개체를 호출
Create
합니다.
기본적으로 DefaultUser 속성은 "admin"으로 설정되고 DefaultPassword 속성은 빈 문자열("")로 설정됩니다.
관련 정보는 DAO 도움말의 "DefaultUser 속성" 및 "DefaultPassword 속성" 항목을 참조하세요.
CDaoWorkspace::SetIniPath
이 멤버 함수를 호출하여 Microsoft Jet 데이터베이스 엔진에 대한 Windows 레지스트리 설정의 위치를 지정합니다.
static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey);
매개 변수
lpszRegistrySubkey
설치 가능한 ISAM 데이터베이스에 필요한 Microsoft Jet 데이터베이스 엔진 설정 또는 매개 변수의 위치에 대한 Windows 레지스트리 하위 키의 이름을 포함하는 문자열입니다.
설명
특수 설정을 지정해야 하는 경우에만 호출 SetIniPath
합니다. 자세한 내용은 DAO 도움말의 "IniPath 속성" 항목을 참조하세요.
참고 항목
애플리케이션을 실행할 때가 아니라 애플리케이션 설치 중에 호출 SetIniPath
합니다. SetIniPath
는 작업 영역, 데이터베이스 또는 레코드 집합을 열기 전에 호출해야 합니다. 그렇지 않으면 MFC가 예외를 throw합니다.
이 메커니즘을 사용하여 사용자가 제공한 레지스트리 설정을 사용하여 데이터베이스 엔진을 구성할 수 있습니다. 이 특성의 범위는 애플리케이션으로 제한되며 애플리케이션을 다시 시작하지 않고는 변경할 수 없습니다.
CDaoWorkspace::SetIsolateODBCTrans
이 멤버 함수를 호출하여 작업 영역에 대한 DAO IsolateODBCTrans 속성 값을 설정합니다.
void SetIsolateODBCTrans(BOOL bIsolateODBCTrans);
매개 변수
bIsolateODBCTrans
ODBC 트랜잭션 격리를 시작하려면 TRUE를 전달합니다. ODBC 트랜잭션 격리를 중지하려면 FALSE를 전달합니다.
설명
경우에 따라 동일한 ODBC 데이터베이스에 보류 중인 여러 동시 트랜잭션이 필요할 수 있습니다. 이렇게 하려면 각 트랜잭션에 대해 별도의 작업 영역을 열어야 합니다. 각 작업 영역은 데이터베이스에 대한 자체 ODBC 연결을 가질 수 있지만 이로 인해 시스템 성능이 저하됩니다. 트랜잭션 격리는 일반적으로 필요하지 않으므로 동일한 사용자가 연 여러 작업 영역 개체의 ODBC 연결은 기본적으로 공유됩니다.
Microsoft SQL Server와 같은 일부 ODBC 서버는 단일 연결에서 동시 트랜잭션을 허용하지 않습니다. 이러한 데이터베이스에 대해 보류 중인 트랜잭션이 한 번에 둘 이상 있어야 하는 경우 열자마자 각 작업 영역에서 IsolateODBCTrans 속성을 TRUE로 설정합니다. 이렇게 하면 각 작업 영역에 대해 별도의 ODBC 연결이 강제로 수행됩니다.
CDaoWorkspace::SetLoginTimeout
이 멤버 함수를 호출하여 작업 영역에 대한 DAO LoginTimeout 속성 값을 설정합니다.
static void PASCAL SetLoginTimeout(short nSeconds);
매개 변수
nSeconds
ODBC 데이터베이스에 로그인하려고 할 때 오류가 발생하기 전의 시간(초)입니다.
설명
이 값은 ODBC 데이터베이스에 로그인하려고 할 때 오류가 발생하기 전의 시간(초)을 나타냅니다. 기본 LoginTimeout 설정은 20초입니다. LoginTimeout을 0으로 설정하면 시간 제한이 발생하지 않으며 데이터 원본과의 통신이 응답하지 않을 수 있습니다.
Microsoft SQL Server와 같은 ODBC 데이터베이스에 로그인하려고 하면 네트워크 오류로 인해 또는 서버가 실행되고 있지 않아 연결이 실패할 수 있습니다. 기본 20초가 연결되기를 기다리는 대신 데이터베이스 엔진이 오류를 생성하기 전에 대기하는 시간을 지정할 수 있습니다. 서버에 대한 로그온은 외부 서버 데이터베이스에서 쿼리를 실행하는 등 다양한 이벤트의 일부로 암시적으로 발생합니다. 제한 시간 값은 LoginTimeout 속성의 현재 설정에 따라 결정됩니다.
관련 정보는 DAO 도움말의 "LoginTimeout 속성" 항목을 참조하세요.
참고 항목
CObject
클래스
계층 구조 차트
CDaoDatabase
클래스
CDaoRecordset
클래스
CDaoTableDef
클래스
CDaoQueryDef
클래스
CDaoException
클래스