상호 운용 가능한 애플리케이션 작성

애플리케이션이 둘 이상의 드라이버에 대해 동일한 코드를 사용할 때마다 해당 코드는 해당 드라이버 간에 상호 운용 가능해야 합니다. 대부분의 경우 이는 쉬운 작업입니다. 예를 들어 전방 전용 커서가 있는 행을 가져오는 코드는 모든 드라이버에서 동일합니다. 경우에 따라 더 어려울 수 있습니다. 예를 들어 SQL 문에 사용할 식별자를 생성하는 코드는 식별자 사례, 따옴표, 1부, 2부, 3부 명명 규칙을 고려해야 합니다.

일반적으로 상호 운용 가능한 코드는 기능 지원 및 기능 가변성의 문제에 대처해야 합니다. 기능 지원 은 특정 기능이 지원되는지 여부를 나타냅니다. 예를 들어 모든 DBMS가 트랜잭션을 지원하는 것은 아니며 상호 운용 가능한 코드는 트랜잭션 지원에 관계없이 올바르게 작동해야 합니다. 기능 가변성은 특정 기능이 지원되는 방식의 변화를 나타냅니다. 예를 들어 카탈로그 이름은 일부 DBMS의 식별자 시작 부분과 다른 DBMS의 식별자 끝에 배치됩니다.

애플리케이션은 디자인 타임 또는 런타임에 기능 지원 및 기능 가변성을 처리할 수 있습니다. 디자인 타임에 기능 지원 및 가변성을 처리하기 위해 개발자는 대상 DBMS 및 드라이버를 살펴보고 동일한 코드를 상호 운용할 수 있는지 확인합니다. 이는 일반적으로 상호 운용성이 낮거나 제한된 애플리케이션이 이러한 문제를 처리하는 방식입니다.

예를 들어 개발자가 세로 애플리케이션이 4개의 특정 DBMS에서만 작동하도록 보장하고 각 DBMS가 트랜잭션을 지원하는 경우 애플리케이션은 런타임에 트랜잭션 지원을 위해 검사 코드가 필요하지 않습니다. 각각 트랜잭션을 지원하는 4개의 DBMS만 사용하도록 디자인 타임 결정으로 인해 트랜잭션을 사용할 수 있다고 항상 가정할 수 있습니다.

런타임에 기능 지원 및 가변성을 처리하려면 애플리케이션이 런타임에 다양한 기능을 테스트하고 그에 따라 작동해야 합니다. 이는 일반적으로 상호 운용성이 높은 애플리케이션이 이러한 문제를 처리하는 방식입니다. 기능 지원 문제의 경우 기능을 선택적으로 만드는 코드를 작성하거나 기능을 사용할 수 없을 때 해당 기능을 에뮬레이트하는 코드를 작성하는 것을 의미합니다. 기능 가변성 문제의 경우 이는 가능한 모든 변형을 지원하는 코드를 작성하는 것을 의미합니다.

이 섹션에서는 다음 항목을 다룹니다.