驅動程序架構

驅動程式架構可分為兩大類,取決於處理 SQL 語句的軟體:

  • 檔案型驅動程式 驅動程式直接存取實體資料。 在此情況下,驅動程式同時扮演驅動程式與資料來源;也就是說,它處理 ODBC 呼叫和 SQL 語句。 例如,dBASE 驅動程式是基於檔案的驅動程式,因為 dBASE 不提供驅動程式可使用的獨立資料庫引擎。 值得注意的是,基於檔案驅動程式的開發者必須自行撰寫資料庫引擎。

  • 基於DBMS的驅動程式 驅動程式透過獨立的資料庫引擎存取實際資料。 此時驅動程式僅處理 ODBC 呼叫;它會將 SQL 陳述式傳送給資料庫引擎進行處理。 例如,Oracle 驅動程式是基於資料庫管理系統(DBMS),因為 Oracle 使用獨立的資料庫引擎。 資料庫引擎所在的位置並不重要。 它可以與驅動程式共用同一台機器,或是網路上的不同機器;甚至可能透過閘道器存取。

驅動程式架構通常只對驅動程式撰寫者感興趣;也就是說,驅動程式架構通常對應用程式沒有影響。 然而,架構會影響應用程式是否能使用 DBMS 專屬的 SQL。 例如,Microsoft Access 提供獨立的資料庫引擎。 如果 Microsoft Access 驅動程式是基於資料庫管理系統(DBMS)——它透過此引擎存取資料——應用程式可以將Microsoft Access-SQL 語句傳給引擎進行處理。

然而,若驅動程式是基於檔案的——也就是說,它包含一個專有引擎直接存取 Microsoft Access .mdb 檔案——任何嘗試將 Access 專屬 SQL 語句傳給引擎Microsoft都可能導致語法錯誤。 原因是專有引擎很可能只實作 ODBC SQL。

此章節包含下列主題。