| 層面 | 選擇 | 理由 |
| 資料庫 | MySQL | 免費、跨平台、C/S 架構、高併發、PHP 原生支援、易維護 |
| 服務器 OS | Windows 2000 Server | 比 98 穩定、可控性強、團隊熟悉、支援 IIS/ASP |
| 遷移工具開發 | Visual Basic 6.0 | 團隊會 ASP/COM,VB6 學習曲線平、ADO 模型一致、現成組件豐富 |
| Web 前端 | ASP + PHP (文中提及 PHP 實現搜索) | IIS 內建 ASP,PHP 跨平台、MySQL 黃金搭檔 |
VB6 遷移工具架構總覽 (三部曲系列規劃)
- 第一部 (本文):項目背景、選型、架構概覽
- 第二部:MySQL 安裝、建庫建表、MyODBC DSN 配置
- 第三部:VB6 界面、ADO 連接、Excel COM 操作、導入邏輯、進度反饋
核心遷移流程設計
Access/Excel 文件
↓ (VB6 + ADO + Jet/Excel OLEDB)
讀取記錄集 (Recordset)
↓ (字段映射、類型轉換、SQL 轉義)
批次 INSERT 語句
↓ (MyODBC / MySQL Native Driver)
MySQL 目標表
↓ (驗證行數、主鍵、業務抽樣)
完成
關鍵技術風險點 (預判)
| 風險 | 影響 | 緩解 |
| Access 自動編號 (AutoNumber) → MySQL AUTO_INCREMENT 映射 | 主鍵衝突、插入失敗 | 導入前關閉 FK、導入後重建自增種子 |
| Excel 日期/數字格式不一致 | 數據截斷/錯誤 | 統一讀取為 Variant → CStr → 參數化寫入 |
| 長文本 (Memo/Long Text) 截斷 | 內容丟失 | 目標列用 TEXT/MEDIUMTEXT、分批寫入 |
| 併發導入鎖表/死鎖 | 性能差、失敗 | 單線程串行、禁用索引/外鍵導入後重建 |
| 編碼 (ANSI/GBK → UTF-8) | 亂碼 | 全鏈路 UTF-8、ADO CharSet 屬性、MySQL SET NAMES utf8 |
現代視角的同類專案執行策略
- 工具選擇**:MySQL Workbench Migration Wizard / AWS DMS / Azure DMS / 自研 Python/Go ETL — **棄用 VB6/COM**
- 驗證機制**:行數、Checksum、關鍵業務 SQL 對比、應用煙霧測試、雙寫驗證期 (7-30 天)
- 回滾預案**:源庫只讀、Binlog 位點記錄、切換腳本、DNS/連接池秒級切回
- 安全合規**:傳輸加密 (TLS)、最小權限賬號、操作審計、敏感數據脫敏
結語
這是一個典型的「文件型數據庫 → 服務型數據庫」遷移項目。**技術棧 (VB6/ASP/Win2000) 已成歷史,但遷移方法論 (評估→建模→抽取→轉換→加載→驗證→切換) 永不過時**。現代團隊應站在巨人肩膀上,用 **雲原生工具鏈 + 自動化驗證 + 可觀測部署** 將遷移風險壓至理論最低,讓業務「遷移無感、上線零故障」。
- 上一篇文章: Access/Excel 遷移 MySQL 實戰 (二):MySQL 安裝、建庫建表、MyODBC 配置系統 DSN 完整步驟
- 下一篇文章: SQL Server 遷移 MySQL 實戰對比:DTS 直連 vs 腳本 ETL (PHP/ASP) 兩種方案優劣深度剖析
Copyright ©
程式碼之家 All Rights Reserved