【发布时间】:2018-12-27 00:27:37
【问题描述】:
我使用 Firebird 和 Delphi,我想通过有线压缩实现通过 Internet 的访问; 但我无法激活它。
我已按照本文档中的步骤获取新参数(我能找到的为数不多的参数之一) How to enable WireCompression on Firebird 3.0 using FireDAC
在我使用的测试中 视窗服务器 2012 R2 火鸟:火鸟-3.0.4.33054_0_Win32(32位) 也复制到可执行文件夹。 fbclient.dll zlib1.dll(同上服务器和客户端) 使用wirecompression = true 创建了firebird.conf。 我在应用程序的 Firedac 中给出了wirecompression=true。
为什么我无法激活 P15:CZ 压缩?
Sending connection info for the example:
================================
Connection definition parameters
================================
DriverID=FB
Database=miservidor001:C:\sysdat\C100\gestdat03.fdb
User_Name=SYSDBA
PassWord=*****
WireCompression=true
================================
FireDAC info
================================
Tool = RAD Studio 10.2
FireDAC = 16.0.0 (Build 88974)
Platform = Windows 32 bit
Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
================================
Client info
================================
Loading driver FB ...
Brand = Firebird
Client version = 300049900
Client DLL name = C:\APPS\WC01\fbclient.dll
================================
Session info
================================
Current catalog =
Current schema =
Server version = WI-V3.0.4.33054 Firebird 3.0
WI-V3.0.4.33054 Firebird 3.0/tcp (WIN-2012LAGO003)/P15:C
WI-V3.0.4.33054 Firebird 3.0/tcp (nucleo)/P15:C'
【问题讨论】:
-
究竟如何将
WireCompression=true传递给客户端?对stackoverflow.com/a/40886443/466862 的评论说“将wirecompression=true 添加到连接参数什么都不做,只会将它添加到firebird.conf 生效”(fbclient.dll 读取的firebird.conf 就是! ) -
“使用wirecompression=true 创建firebird.conf”是什么意思?您不应该创建 Firebird 配置!您应该找到唯一现有的配置文件并对其进行编辑(然后重新启动 Firebird)。如果你在服务器上创建了它,那么它很可能位于 Firebird Server 永远不会看到的某个杂散的地方。
-
使用 SysInternals Process Monitor 确保您的应用程序访问了哪些文件:它是否加载了您希望它加载的 fbclient.dll、zlib1.dll 和 firebird.conf 或其他文件所有这些?
-
firebird.conf 文件中的
WireCompression=true是仅限客户端的设置。如果您在服务器的firebird.conf中更改它,它只会影响服务器(其中服务器充当客户端)建立的on external datasource连接。在服务器上更改此设置不会以任何方式影响连接到服务器的客户端(除非它们读取相同的配置文件)。
标签: delphi firebird firedac firebird-3.0 anydac