Visual FoxPro 已经停止支持,老系统还能用多久?该怎么迁移?
RELIFT 技术团队发布 阅读约 3 分钟
微软对 Visual FoxPro 9.0 的扩展支持已在 2015 年 1 月 13 日结束,此后不再有任何更新。VFP 程序目前大多仍能在 Windows 10/11 上运行,但已经没有官方保障;单个 DBF 表 2GB 的上限、多人共享写入的损坏风险,以及会维护 VFP 的人越来越少,是比“能不能运行”更现实的问题。建议先把数据迁到正规数据库,再逐步替换程序。
- Visual FoxPro 9.0(SP2)是最后一个版本,2007 年后不再推出新版本
- 微软对 VFP 9.0 的主流支持于 2010 年 1 月结束,扩展支持于 2015 年 1 月 13 日结束
- VFP 程序目前大多能在 Windows 10/11 上运行,但出了问题不会再有官方修复
- 单个 DBF 表文件上限 2GB,多人通过共享目录写入时容易损坏
- 迁移的关键在数据:编码、备注字段、索引和隐藏在程序里的业务规则
VFP 的支持状态:时间线
| 时间 | 事件 |
|---|---|
| 2004 年 | Visual FoxPro 9.0 发布 |
| 2007 年 | 微软宣布 VFP 9.0 是最后一个版本,随后发布 SP2 |
| 2010 年 1 月 | 主流支持结束 |
| 2015 年 1 月 13 日 | 扩展支持结束,此后不再提供任何安全更新和修复 |
也就是说,从 2015 年起,VFP 已经是一个完全没有官方支持的产品。
现在还能用吗?
多数 VFP 程序目前仍然可以在 Windows 10、Windows 11 上运行,只要安装了对应的运行库。但这种“能用”有几个前提:
- 没有任何官方保障,未来的 Windows 更新如果造成兼容问题,不会有人修;
- 打印、报表、与 Office 交互等功能,在新电脑上需要逐项验证;
- 程序一旦需要修改,必须找到会 VFP、而且懂这套业务的人。
真正的风险在哪里?
1. DBF 文件的 2GB 上限
VFP 的数据表(.dbf)和备注文件(.fpt)单个文件最大 2GB。业务做了十几年,订单、流水类的表很容易逼近这个上限。超过之后,表会无法写入甚至损坏。
2. 多人共享写入容易损坏
很多 VFP 系统的数据放在一台电脑的共享目录里,多人同时访问。网络中断、异常断电或某台电脑死机时,正在写入的表和索引(.cdx)都可能损坏,“修表”“重建索引”成了日常工作。
3. 人才断档
会写 VFP 的程序员大多已经转行或退休,新人几乎不会去学。系统越依赖某一个人,风险越集中。
推荐的迁移顺序
第 1 步:盘点和备份
- 列出所有数据表、每张表的记录数和文件大小,找出接近 2GB 的表;
- 列出程序的表单(
.scx)、类库(.vcx)、程序文件(.prg)和报表(.frx); - 做一次完整备份,并建立每日自动备份。
第 2 步:先迁数据
把 DBF 数据迁移到 SQL Server、PostgreSQL 等正规数据库。需要特别注意:
- 编码:老数据大多是 GBK 等中文代码页,转换时要确认没有乱码;
- 备注字段:内容存在
.fpt文件里,要一并迁移; - 数据质量:没有主键的表、重复记录、空值和非法日期。
迁移后,VFP 程序可以先改为通过 ODBC 访问新数据库,这样不改界面就能先解决容量和损坏问题。
第 3 步:按模块替换程序
从最常用、最常出问题、最需要和其它系统对接的模块开始,逐步迁移到新技术栈。新旧系统并行运行一段时间,用旧系统的结果作为标准逐项核对,确认一致后再切换。
小结
VFP 系统“还能跑”不代表“还安全”。建议的做法是:先保数据、再迁数据、最后换程序,每一步都能独立见效,不需要一次性推倒重写。
常见问题
- VFP 程序在 Windows 11 上运行需要注意什么?
- 主要是运行库和权限:确保安装了对应版本的 VFP 运行库(如 vfp9r.dll 等文件),程序不要装在会被 UAC 拦截写入的目录;打印、报表相关功能要在新电脑上重点测试。
- DBF 数据能直接导入 SQL Server 吗?
- 可以,但要注意中文编码(代码页)、备注字段(.fpt 文件)和日期字段的转换,并检查没有主键、存在重复记录的表。迁移前最好先统计每张表的记录数,迁移后逐表核对。
- 一定要把 VFP 程序全部重写吗?
- 不一定。可以先把数据迁移到 SQL Server 等数据库,让 VFP 程序通过 ODBC 访问新数据库,先解决容量和损坏问题;再按模块逐步把功能迁移到新系统。
本文由 长沙数分信息科技有限公司(RELIFT)技术团队撰写。文中涉及的厂商支持政策以官方最新公告为准;处理生产环境前,请先完整备份程序和数据。