Open Database Connectivity (ODBC) 由 Microsoft 主導,基於 SQL (Structured Query Language) 及 ISO/IEC 9075 Call-Level Interface (CLI) 規範,定義應用程式存取資料庫的標準 C API。
| 特性 | 說明 |
|---|---|
| 應用程式不受限於專用 API | 同一套程式碼透過更換 DSN/驅動程式即可存取 Oracle, SQL Server, PostgreSQL, MySQL, DB2, Access, Excel, 文字檔等 50+ 種資料源。 |
| SQL 陳述式內嵌於原始碼 | 動態建構 SQL 字串傳遞給 `SQLExecDirect`,或預備執行 `SQLPrepare`/`SQLExecute`。支援參數標記 `?` 綁定變數。 |
| 應用程式以自有格式收發資料 | `SQLBindCol` 指定 C 語言緩衝區型別 (SQL_C_CHAR, SQL_C_LONG, SQL_C_DOUBLE, SQL_C_BINARY 等),驅動程式負責型別轉換。 |
| 完全相容 ISO CLI 標準 | 核心 API 符合 ISO/IEC 9075-3 (CLI),保證跨平台、跨驅動程式可攜性。 |
| 廣泛廠商支援 | 歷經 30 年演進,幾乎所有關聯式/多維/NoSQL 資料庫皆提供 ODBC 驅動程式 (含雲端服務: Azure SQL, Redshift, Snowflake, BigQuery)。 |
-- SQL Server ODBC Driver 17/18+
Driver=ODBC Driver 18 for SQL Server;Server=tcp:myserver,1433;Database=mydb;Uid=myuser;Pwd=mypwd;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;
-- PostgreSQL (psqlodbc)
Driver=PostgreSQL Unicode;Server=myserver;Port=5432;Database=mydb;Uid=myuser;Pwd=mypwd;SSLMode=Require;
-- MySQL (MySQL ODBC 8.0+)
Driver=MySQL ODBC 8.0 Unicode Driver;Server=myserver;Port=3306;Database=mydb;Uid=myuser;Pwd=mypwd;SslMode=REQUIRED;