首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

非 Web 環境操作 MySQL:MyODBC 驅動在 VC/Delphi/VB 中的配置實戰

     編輯:PHP 相關知識

桌面應用程式透過 ODBC 介面連接 MySQL 的完整部署指南

針對 VC++、Delphi、VB 等桌面開發工具,本文詳述 MyODBC 驅動的兩種部署方式:完整安裝包與最小化手動註冊 DLL,並提供註冊表配置範本與 ODBC 資料源建立步驟。

兩種部署策略對比

方式優點缺點適用場景
完整安裝包自動註冊、含管理工具、相容性佳體積大 (數十 MB)、安裝時間長開發機、測試環境、需 GUI 管理
手動註冊 myodbc.dll極輕量 (~300KB)、部署快、適合打包發布需手寫註冊表、易遺漏步驟、無管理工具生產環境客戶端部署、綠色軟體、嵌入式系統

手動註冊 myodbc.dll 完整步驟 (核心內容)

1. 複製 DLL 至系統目錄

# 32 位系統
copy myodbc.dll C:\Windows\System32\

# 64 位系統 (需 32 位 ODBC 驅動給 32 位應用用)
copy myodbc.dll C:\Windows\SysWOW64\

2. 建立註冊表檔 (myodbc.reg)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\MyODBC Driver]
"UsageCount"=dword:00000002
"Driver"="C:\\Windows\\System32\\myodbc.dll"
"Setup"="C:\\Windows\\System32\\myodbc.dll"
"SQLLevel"="1"
"FileUsage"="0"
"DriverODBCVer"="02.50"
"ConnectFunctions"="YYY"
"APILevel"="1"
"CpTimeout"="120"

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"MyODBC Driver"="installed"

關鍵說明**:

  • 路徑雙反斜線 \\ 為註冊表規範
  • Driver 與 Setup 同指向同一 DLL (MyODBC 整合驅動與安裝程式)
  • ConnectFunctions="YYY" 表示支援 SQLConnect, SQLDriverConnect, SQLBrowseConnect

3. 匯入註冊表並建立系統 DSN

  1. 雙擊 myodbc.reg → 是/確定匯入
  2. 開啟「ODBC 資料來源管理員」 (odbcad32.exe)
  3. 「系統 DSN」頁籤 → 「新增」 → 選擇 MyODBC Driver
  4. 填寫連線參數:
    • Data Source Name: 自訂名稱 (如 MySQL_Northwind)
    • Server: localhost 或 IP
    • Port: 3306
    • Database: 目標資料庫名
    • User: root
    • Password: 密碼
  5. 點擊「測試」驗證連線成功

開發工具調用範例

Visual C++ (MFC/ODBC API)

CDatabase db;
db.OpenEx("DSN=MySQL_Northwind;UID=root;PWD=password", CDatabase::noOdbcDialog);
CRecordset rs(&db);
rs.Open(CRecordset::forwardOnly, "SELECT * FROM products");
// 遍歷 rs.GetFieldValue()...

Delphi (ADO/DBExpress)

// ADO 方式
ADOConnection1.ConnectionString := 
  'Provider=MSDASQL.1;Persist Security Info=False;Data Source=MySQL_Northwind';
ADOConnection1.Open;
ADOQuery1.SQL.Text := 'SELECT * FROM products';
ADOQuery1.Open;

Visual Basic 6 (ADO)

Dim cn As New ADODB.Connection
cn.Open "DSN=MySQL_Northwind;UID=root;PWD=password"
Dim rs As New ADODB.Recordset
rs.Open "SELECT * FROM products", cn, adOpenStatic, adLockReadOnly

ASP/經典 Web 環境補充

ASP 必須使用 ODBC (不支援 MySQL 原生 API)。配置系統 DSN 後:

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DSN=MySQL_Northwind;UID=root;PWD=password"
Set rs = conn.Execute("SELECT * FROM products")
%>

注意:ASP 在 IIS 進程中運行,需確保 ODBC 連線池配置正確,避免連線洩漏導致網站掛起。

常見問題排查

現象可能原因解決
找不到驅動程式註冊表路徑錯誤、DLL 版本不符 (32/64位)檢查 Registry 路徑、使用 SysWOW64 目錄、確認驅動版本
連線失敗 2003/2005MySQL 服務未啟動、防火牆阻擋 3306、bind-address 錯誤啟動服務、開放防火牆、my.cnf 設定 bind-address=0.0.0.0
中文亂碼字元集不匹配連線字串加 CHARSET=utf8mb4、資料庫/表/欄位統一 utf8mb4
驅動程式不支援功能MyODBC 版本過舊升級至 MySQL Connector/ODBC 8.0+ (現代驅動名稱)

現代化遷移建議

  • 驅動程式:MyODBC 已更名為 MySQL Connector/ODBC,請下載 8.0 版支援 TLS 1.2、utf8mb4、JSON 欄位
  • 架構升級:桌面直連資料庫安全性差、難維護。建議改為 REST API + HTTPS 架構,桌面端僅呼叫 API
  • 跨平台:Linux/macOS 使用 unixODBC + MySQL Connector/ODBC,配置 /etc/odbcinst.ini、/etc/odbc.ini
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved