每當應用程式對多個驅動程式使用相同程式碼時,該程式碼必須在這些驅動程式間互通。 大多數情況下,這是一項簡單的任務。 例如,針對所有驅動程式,取得僅向前游標的列的程式碼是相同的。 在某些情況下,這會更為困難。 例如,建構用於 SQL 語句的識別碼時,需要考慮識別碼大小寫、引用,以及單段、兩段和三段命名慣例。
一般而言,互通程式碼必須應對功能支援與變異性的問題。 功能支援 指的是某個特定功能是否被支援。 例如,並非所有資料庫管理系統都支援交易,且可互通的程式碼必須無論是否支援交易都能正常運作。 特徵變異 性指的是特定特徵被支援方式上的變化。 例如,在某些資料庫管理系統中,目錄名稱會置於識別碼開頭,在其他資料庫管理系統則置於識別碼末尾。
應用程式可以在設計時或執行時處理功能支援與變異性。 為了在設計時處理功能支援與變異性,開發者會檢視目標資料庫管理系統(DBMS)與驅動程式,確保相同程式碼在它們之間能互通。 這通常是低或有限互通性應用處理這些問題的方式。
例如,如果開發者保證垂直應用程式只能支援四個特定的資料庫管理系統,且每個資料庫管理系統都支援交易,應用程式就不需要程式碼在執行時檢查交易支援。 它總是可以假設交易是可用的,因為設計時決定只使用四個支援交易的 DBMS。
為了在執行時處理功能支援與變異性,應用程式必須在執行時測試不同能力並相應行動。 這通常是高度互通應用程式處理這些問題的方式。 對於功能支援問題,這意味著撰寫使該功能成為可選的程式碼,或在功能無法使用時撰寫模擬該功能的程式碼。 對於特徵變異性問題,這意味著要撰寫支援所有可能變體的程式碼。
此章節包含下列主題。