如何以嵌入式模式连接FireDAC与Firebird 4数据库(无需服务器)
Delphi/FireDAC 连接 Firebird 4 嵌入式数据库(免服务、可便携)
一、准备必要文件
从Firebird 4的压缩包(非安装版)中提取以下文件,和你的Delphi程序可执行文件放在同一目录(比如U盘根目录):
fbclient.dll(注意匹配程序的32/64位架构,32位程序用32位dll,64位同理)firebird.msgib_util.dll- ICU依赖库:
icudt68.dll、icuin68.dll、icuuc68.dll - 你的Firebird数据库文件(
.fdb格式)
二、配置FireDAC连接
核心是让FireDAC启用嵌入式模式,避免尝试连接系统服务,具体配置如下:
可视化配置(IDE中操作)
- 拖放
TFDConnection组件到窗体,设置DriverName为FB - 打开
ConnectionParams编辑器,添加/修改以下参数:Database:直接指定数据库文件路径(支持相对路径,比如.\mydata.fdb,确保程序能访问到)User_Name:默认SYSDBA(可按需修改)Password:默认masterkey(正式环境务必修改)Embedded:设为TrueProtocol:设为Local(可选,强制本地连接逻辑)
代码配置(动态创建连接)
procedure TForm1.FormCreate(Sender: TObject); begin FDConnection1.DriverName := 'FB'; FDConnection1.Params.Clear; FDConnection1.Params.Add('Database=.\mydata.fdb'); FDConnection1.Params.Add('User_Name=SYSDBA'); FDConnection1.Params.Add('Password=masterkey'); FDConnection1.Params.Add('Embedded=True'); FDConnection1.Params.Add('Protocol=Local'); try FDConnection1.Connected := True; ShowMessage('连接成功'); except on E: Exception do ShowMessage('连接失败:' + E.Message); end; end;
三、关键注意事项
- 架构匹配:必须保证程序编译位数(32/64)和所有Firebird依赖dll的位数完全一致,否则会出现加载失败或连接错误。
- 文件完整性:不要遗漏任何依赖文件,尤其是ICU库,缺失会导致Firebird核心功能无法启动。
- 路径权限:确保U盘所在路径有读写权限,避免因Windows权限限制导致数据库无法打开或写入。
- 避免服务冲突:如果目标系统已安装Firebird服务,优先保证程序目录下的
fbclient.dll被加载(Windows会优先加载程序当前目录的dll),或者暂时停止系统中的Firebird服务。 - 数据库创建:如需动态创建数据库,同样启用嵌入式参数,执行
CREATE DATABASE语句即可,无需依赖服务。
内容的提问来源于stack exchange,提问作者Jared Davison
相关产品推荐
相关产品推荐

