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

Windows 10更新后FireDAC连接Firebird数据库异常问题

解决Win10 1803后网络路径下Delphi+FireDAC连接Firebird报错335544721的问题

这个错误码(335544721)对应Firebird的isc_bad_arg错误,本质是参数非法,结合你描述的“本地正常、网络路径失效”的现象,大概率是Win10 1803更新带来的SMB安全策略变更,或者FireDAC在网络环境下的路径解析问题。下面是我亲测有效的解决方案:

1. 修正FireDAC连接字符串的路径格式

  • 优先使用UNC路径替代映射盘符:把连接参数里的Database=Q:\mydb.fdb改成Database=\\comp1\share\mydb.fdb。Win10 1803后,映射盘符在网络启动的进程中可能无法正确解析,UNC路径是更可靠的选择。
  • 检查Protocol参数:如果Firebird服务器是远程的,确保Protocol=TCPIP;如果是本地共享的数据库文件,尝试设置Protocol=Local(注意本地协议需要Firebird服务端在本地运行,且共享目录有足够权限)。

2. 调整Windows SMB安全设置

Win10 1803默认禁用了SMB 1.0和不安全的来宾登录,这会影响旧的网络共享访问:

  • 启用不安全的来宾登录:
    1. 按Win+R输入gpedit.msc打开组策略编辑器
    2. 导航到计算机配置 > 管理模板 > 网络 > Lanman工作站
    3. 找到启用不安全的来宾登录,设置为已启用,重启电脑生效
  • 或者启用SMB 1.0支持(仅适合旧环境):
    1. 打开控制面板 > 程序 > 启用或关闭Windows功能
    2. 勾选SMB 1.0/CIFS 文件共享支持,重启电脑

3. 确保Firebird客户端库可访问

当程序从网络路径运行时,UAC或AppLocker可能限制它加载本地的fbclient.dll:

  • 把fbclient.dll复制到网络共享的程序目录下,让程序直接加载同目录的客户端库,避免权限问题
  • 或者给本地Firebird安装目录下的fbclient.dll添加Everyone的读取权限,确保网络进程能访问到它

4. 开启FireDAC日志排查参数问题

如果以上方法都无效,开启FireDAC的日志功能,查看具体哪个参数出了问题:
在程序启动时添加以下代码:

FDManager.Logging := True;
FDManager.LogFileName := 'C:\temp\firedac_conn_log.txt';
FDManager.LogOptions := [loShowSql, loShowError, loShowBind, loShowExecute];

运行网络路径的程序后,打开日志文件,查看连接过程中的参数细节,比如是否有路径被转义、权限不足的提示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:46:36