首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Access/Excel 遷移 MySQL 實戰 (一):項目背景、技術選型、VB6 開發架構總覽

     編輯:MySQL 資料庫相關知識

項目背景

  • **客戶**:二手樓盤買賣公司,多家分公司
  • **現狀**:數據分散在 Access (.mdb) 和 Excel (.xls) 文件中
  • **痛點**:單機、併發差、無網絡共享、查詢慢、備份難、安全性低
  • **目標**:統一遷移至中心化 MySQL,實現多用戶並發、瀏覽器訪問、樓盤搜索功能

技術選型決策

VB6 遷移工具架構總覽 (三部曲系列規劃)

  1. 第一部 (本文):項目背景、選型、架構概覽
  2. 第二部:MySQL 安裝、建庫建表、MyODBC DSN 配置
  3. 第三部:VB6 界面、ADO 連接、Excel COM 操作、導入邏輯、進度反饋

核心遷移流程設計

Access/Excel 文件
      ↓ (VB6 + ADO + Jet/Excel OLEDB)
讀取記錄集 (Recordset)
      ↓ (字段映射、類型轉換、SQL 轉義)
批次 INSERT 語句
      ↓ (MyODBC / MySQL Native Driver)
MySQL 目標表
      ↓ (驗證行數、主鍵、業務抽樣)
完成

關鍵技術風險點 (預判)

層面選擇理由
資料庫MySQL免費、跨平台、C/S 架構、高併發、PHP 原生支援、易維護
服務器 OSWindows 2000 Server比 98 穩定、可控性強、團隊熟悉、支援 IIS/ASP
遷移工具開發Visual Basic 6.0團隊會 ASP/COM,VB6 學習曲線平、ADO 模型一致、現成組件豐富
Web 前端ASP + PHP (文中提及 PHP 實現搜索)IIS 內建 ASP,PHP 跨平台、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) 已成歷史,但遷移方法論 (評估→建模→抽取→轉換→加載→驗證→切換) 永不過時**。現代團隊應站在巨人肩膀上,用 **雲原生工具鏈 + 自動化驗證 + 可觀測部署** 將遷移風險壓至理論最低,讓業務「遷移無感、上線零故障」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved