ODBC 常見數據源配置整理
1. 簡介
我們用golang做odbc驅動開發的任務並不多,隔段時間可能會來一個。每次開發會忘記如何配置數據源和對應的數據源鏈接參數配置。這裡做一個整理。
1.1 ODBC和JDBC
ODBC(Open Database Connectivity)是一組對資料庫訪問的標準API,其最大的優點是以統一的方式處理所有的資料庫。
JDBC(Java Database Connectivity)是Java與資料庫的介面規範,允許Java程式發送SQL指令並處理結果。比較常見JdbcTemplate
1.2 ODBC配置工具
打開控制面板找到管理工具,當前目錄有兩個ODBC的配置工具。分別是:ODBC Data Sources (32-bit)、ODBC 數據源(64 位)。顧名思義一個是32位,一個是64位。在配置ACCESS數據源時需要選擇32位。
我們也可以直接在系統目錄下找到對應的可執行文件。
1)32位:%windir%\syswow64\odbcad32.exe
2)64位:%windir%\system32\odbcad32.exe
題外話:syswow64 目錄存放的是32位的程式,system32目錄存放的是64位的程式,在註冊dll的時候需要注意下。ITDragon 在接觸驅動開發之前一直都弄反了。這篇文章做了通俗易懂地解釋//www.cnblogs.com/hbccdf/p/dllchecktoolandsyswow64.html
1.3 ODBC 數據源連接配置
網上收集整理,不保證正確性,僅供參考。
資料庫 | 連接參數 |
---|---|
MySQL | driver={mysql};database=資料庫;uid=帳號;pwd=密碼; |
MSSQL Server | driver={sql server};server=伺服器;database=資料庫;uid=ITDragon;pwd=密碼; |
Access | driver={microsoft access driver (*.mdb)};dbq=mdb文件全路徑;uid=ITDragon;pwd=密碼; |
SQLite | driver={SQLite3 ODBC Driver};database=db文件全路徑 |
PostgreSQL | driver={PostgreSQL ANSI};server=伺服器;uid=帳號;pwd=密碼;database=資料庫; |
DBase | driver={microsoft dbase driver (*.dbf)};driverid=277;dbq=dbf文件全路徑; |
Oracle | driver={microsoft odbc for oracle};server=伺服器;uid=ITDragon;pwd=密碼; |
MS text | driver={microsoft text driver (* .txt; *.csv)};dbq=文件全路徑;extensions=asc,csv,tab,txt;PersistSecurityInfo=false; |
Visual Foxpro | driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No; |
2. MySQL 數據源配置
2.1 配置步驟
第一步:雙擊ODBC 數據源(64 位),可以選擇用戶DSN(系統只對當前用戶生效),也可以選擇系統DSN(能登錄當前系統的用戶都生效)
第二步:點擊添加,選擇事先安裝好的MySQL ODBC xx Driver 驅動後點擊完成。注意不同版本之間對某些sql語法的支援略有不同(之前吃過這個虧,我的環境有問題,客戶環境沒問題😂😂😂)。
第三步:完善基本鏈接資訊後點擊Test,提示鏈接成功後點擊OK完成配置。
2.2 鏈接參數配置
因為ODBC驅動配置已經將資料庫的連接地址、帳號、密碼、資料庫都已經配置完成,連接參數只需要指定驅動名稱即可:DSN=ITDragon_MySQL
Golang偽程式碼:
import (
"database/sql"
_ "github.com/alexbrainman/odbc"
)
db, err := sql.Open("odbc", "DSN=ITDragon_MySQL")
if err != nil {
panic(err)
}
defer db.Close()
3. SQLServer 數據源配置
3.1 配置步驟
第一步:雙擊ODBC 數據源(64 位),可以選擇用戶DSN(系統只對當前用戶生效),也可以選擇系統DSN(能登錄當前系統的用戶都生效)
第二步:點擊添加,選擇SQL Server。這一項我ITDragon 並沒有手動安裝,應該是安裝SQL Server資料庫的時候自動安裝上去的。
第三步:鍵盤輸入需要連接的SQLServer伺服器,如果是本機,就輸入電腦名。如果是遠程主機就需要輸入IP,Port 。不要點擊下拉框,會卡死。
第四步:選擇SQL Server驗證方式
第五步:選擇默認資料庫,也可以在寫sql語句時將表名的全路徑寫全(我ITDragon 習慣用寫全)
第六步:可以考慮修改SQL Server的系統消息語言,數據的加密,執行字元數據翻譯,修改日誌保存路徑等。也可以默認。
第七步:點擊完成,彈出「按照以下配置創建新的ODBC數據源」,點擊測試數據源,提示測試成功。點擊確定完成創建。
3.2 鏈接參數配置
Golang偽程式碼:
import (
"database/sql"
_ "github.com/alexbrainman/odbc"
)
db, err := sql.Open("odbc", "driver={sql server};server=DESKTOP-HKC2IA3;DSN=ODBCName;uid=xxx;pwd=xxx;")
if err != nil {
panic(err)
}
defer db.Close()
4. ACCESS 數據源配置
4.1 配置步驟
第一步:雙擊ODBC Data Sources (32-bit),而不是64位。可以選擇用戶DSN(系統只對當前用戶生效),也可以選擇系統DSN(能登錄當前系統的用戶都生效)
第二步:選擇Microsoft Access Driver (*.mdb)。點擊資料庫下發的選擇按照,選擇mdb文件,點擊確定完成配置。
4.2 鏈接參數配置
我們其實可以不用配置Access的數據源,直接用DBQ指定mdb的文件路徑,再用pwd輸入密碼訪問。
Golang偽程式碼:
import (
"database/sql"
_ "github.com/alexbrainman/odbc"
)
db, err := sql.Open("odbc", "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=全路徑.MDB;pwd=xx;")
if err != nil {
panic(err)
}
defer db.Close()