APIDb_ChangeCurrentDatabaseID
현재 (활성) 데이터베이스를 변경합니다.
GSErrCode ACAPI_Database ( APIDb_ChangeCurrentDatabaseID, API_DatabaseInfo* databaseInfo );
파라미터
- databaseInfo
- [in] 생성할 데이터베이스의 파라미터들입니다. (type, reference index)
리턴 값
NoError
- 함수가 성공적으로 완료되었습니다.
APIERR_BADPARS
databasePars
가NULL
입니다.APIERR_NOPLAN
- 열린 프로젝트가 없습니다.
APIERR_BADDATABASE
- 요청된 데이터베이스가 존재하지 않습니다.
다른 공통 API 오류들에 대해서는 API 오류 문서를 보십시오.
설명
이 함수는 백그라운드에서 현재 데이터베이스를 변경하는 데 사용합니다. 데이터베이스 종속 함수에 대한 모든 후속 API 호출들은 지정한 데이터베이스에서 작동하게 될 것입니다.
이 함수는 메모리가 부족할 경우 매우 비용이 높을 수 있습니다. 서버 애플리케이션은 가능한 한 메모리 안에 많은 데이터베이스 객체들을 유지하려고 합니다만 그 중 일부를 스왑 아웃(swap out)시켜야 할 경우가 발생할 수 있습니다. 다른 데이터베이스로 전환한다는 것은 서버 애플리케이션이 한 데이터베이스를 메모리에 로드하게 됨에 따라 다른 데이터베이스들이 언로드 될 수도 있음을 의미합니다. 상대적으로 긴 시간이 소요될 수 있습니다.
백그라운드에서 데이터베이스를 변경할뿐만 아니라 현재 전면 창도 바꾸고 싶으면 APIDo_ChangeWindowID 함수를 참조하십시오.
예제
GSErrCode ChangeCurrentDatabase (const API_Guid& guid) { API_Element element; API_DatabaseInfo databasePars; GSErrCode err; BNZeroMemory (&element, sizeof (API_Element)); element.header.guid = guid; err = ACAPI_Element_Get (&element); if (err == NoError) { BNZeroMemory (&databasePars, sizeof (API_DatabaseInfo)); databasePars.typeID = APIWind_SectionID; databasePars.databaseUnId = element.cutPlane.databaseID; err = ACAPI_Database (APIDb_ChangeCurrentDatabaseID, &databasePars, NULL); } return err; }
요구사항
- 버전: API 4.1 또는 이후
- 헤더: APIdefs_Database.h
참고사항
API_DatabaseInfo,
APIDo_ChangeWindowID,
ACAPI_Database, API 함수