You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual FoxPro 9生成的EXE在Windows 10无法启动,SQL Server 2019连接异常

解决方案

1. 修复连接字符串问题

你的连接字符串存在两处关键问题:

  • 末尾冗余的.会导致数据库名称解析失败
  • 旧版DRIVER=SQL Server驱动对SQL Server 2019兼容性不足

替换为适配SQL Server 2019的ODBC驱动,修正后的连接字符串示例:

DRIVER=ODBC Driver 17 for SQL Server;SERVER=tcp:<<DBServerHostName>>;Trusted_Connection=Yes;APP=<<App Name>>;DATABASE=<<Database Name>>

备注:若使用默认实例可省略tcp:前缀;命名实例格式为SERVER=<<DBServerHostName>>\<<InstanceName>>

2. 确认VFP9运行时组件完整

Windows 10默认不包含Visual FoxPro 9的运行环境,需确保以下文件放置在EXE同目录或系统路径中:

  • vfp9r.dll
  • vfp9t.dll
  • vfp9renu.dll(中文环境替换为vfp9rchs.dll)
    缺失这些依赖会导致程序静默崩溃。

3. 添加错误捕获代码定位根因

由于事件查看器无报错,在程序入口(如main.prg)添加错误捕获逻辑,强制输出错误日志:

ON ERROR DO ErrorHandler WITH ERROR(), MESSAGE(), MESSAGE(1), PROGRAM(), LINENO()

PROCEDURE ErrorHandler
    PARAMETERS nError, cMessage, cMessage1, cProgram, nLineNo
    LOCAL cErrorText
    cErrorText = "错误编号: " + TRANSFORM(nError) + CHR(13) + ;
                 "错误信息: " + cMessage + CHR(13) + ;
                 "错误代码行: " + cMessage1 + CHR(13) + ;
                 "程序名称: " + cProgram + CHR(13) + ;
                 "行号: " + TRANSFORM(nLineNo)
    STRTOFILE(cErrorText, "error_log.txt")
    MESSAGEBOX(cErrorText, 16, "程序错误")
    QUIT
ENDPROC

重新编译后运行,生成的error_log.txt会直接暴露崩溃原因。

4. 检查SQL Server 2019配置

  • 在SQL Server配置管理器中确认TCP/IP协议已启用
  • 检查Windows防火墙是否开放SQL Server默认端口(1433)的入站权限
  • 验证当前Windows用户拥有SQL Server登录权限及目标数据库的访问权限

5. 兼容性模式调试

右键EXE文件→属性→兼容性,勾选“以兼容模式运行这个程序”,选择Windows 7或Windows XP SP3,尝试启动以排除系统兼容性问题。

内容的提问来源于stack exchange,提问作者Dhanaraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:01:16