ODBC 常見資料來源配置整理

ITDragon龍發表於2020-06-23

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 在接觸驅動開發之前一直都弄反了。這篇文章做了通俗易懂地解釋https://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完成配置。

1585281561017

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 。不要點選下拉框,會卡死。

1585291278366

第四步:選擇SQL Server驗證方式

1585291349778

第五步:選擇預設資料庫,也可以在寫sql語句時將表名的全路徑寫全(我ITDragon 習慣用寫全)

1585291378684

第六步:可以考慮修改SQL Server的系統訊息語言,資料的加密,執行字元資料翻譯,修改日誌儲存路徑等。也可以預設。

1585291410809

第七步:點選完成,彈出“按照以下配置建立新的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檔案,點選確定完成配置。

1585292702603

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()

相關文章