驅動程式架構
根據哪些軟體處理 SQL 陳述式而定,驅動程式架構分為兩類:
以檔案為基礎的驅動程式 驅動程式會直接存取實體資料。 在此情況下,驅動程式會同時作為驅動程式和資料來源;也就是說,其會處理 ODBC 呼叫和 SQL 陳述式。 例如,dBASE 驅動程式是以檔案為基礎的驅動程式,因為 dBASE 不提供驅動程式可使用的獨立資料庫引擎。 請務必注意,以檔案為基礎的驅動程式開發人員必須撰寫自己的資料庫引擎。
以 DBMS 為基礎的驅動程式 驅動程式會透過個別資料庫引擎存取實體資料。 在此情況下,驅動程式僅處理 ODBC 呼叫;其會將 SQL 陳述式傳遞至資料庫引擎進行處理。 例如,Oracle 驅動程式是以 DBMS 為基礎的驅動程式,因為 Oracle 具有驅動程式所使用的獨立資料庫引擎。 資料庫引擎的所在位置並不重要。 其可位於與驅動程式相同的電腦上,也可位於網路中的不同電腦上;甚至可以透過閘道存取。
通常只有驅動程式寫入器會對驅動程式架構感興趣;也就是說,驅動程式架構通常不會對應用程式造成任何影響。 不過,架構可能會影響應用程式是否可以使用 DBMS 特定的 SQL。 例如,Microsoft Access 提供獨立資料庫引擎。 如果 Microsoft Access 驅動程式是以 DBMS 為基礎,則會透過該引擎存取資料,應用程式可以將 Microsoft Access-SQL 陳述式傳遞至引擎進行處理。
不過,如果驅動程式是以檔案為基礎,也就是說,其包含直接存取 Microsoft Access .mdb 檔案的專屬引擎,則任何將 Microsoft Access 特定的 SQL 陳述式傳遞至引擎的嘗試都可能會導致語法錯誤。 原因是專屬引擎可能僅實作 ODBC SQL。
此章節包含下列主題。