IFX_LONGID 环境变量设置和客户机应用程序的版本号确定给定客户机应用程序能否处理长标识。(较旧版本的
GBase 8s 将 SQL 标识限制为 18 字节或更少字节;在设置了
IFX_LONGID 的情况下,
长标识最多可有 128 字节。)有效
IFX_LONGID 值包括
1 和
0。
- 1
- 客户机支持长标识。
- 0
- 客户机不能支持长标识。
当 IFX_LONGID 设置为零时,应用程序仅显示长标识符的前
18 个字节,而不(通过 +)指示发生了截断。
如果取消设置 IFX_LONGID 或将其设置为 1 或 0 之外的值,那么根据客户机应用程序的内部版本确定。如果(基于服务器的)版本不低于 9.0304 或处于(基于 CSDK 的)范围 2.90 ≤ 版本 < 4.0,那么认为该客户机能够处理长标识符。否则认为客户机应用程序不能处理长标识符。
IFX_LONGID 设置覆盖客户机应用程序的内部版本。如果客户机不能处理长标识符(尽管版本号较新),那么将 IFX_LONGID
设置为 0。如果客户机版本可以处理长标识符(尽管版本号较旧),那么将 IFX_LONGID 设置为 1。
如果在客户机上设置
IFX_LONGID,那么该设置仅影响该客户机。如果在设置了
IFX_LONGID 的情况下启动数据库服务器,那么所有客户机应用程序在缺省情况下使用该设置。但是,如果在客户机和数据库服务器上将
IFX_LONGID
设置为不同的值,那么客户机设置优先。
重要: 如果 ESQL 可执行文件是使用 -static 选项构建的且构建时使用的 libos.a 库版本不支持长标识,那么这些文件不能使用 IFX_LONGID 环境变量。必须使用新的包括对长标识的支持的 libos.a
库重新编译这类应用程序。使用共享库(没有 -static 选项)的可执行文件可使用
IFX_LONGID 而不进行重新编译(如果它们使用新的提供对长标识的支持的
libifos.so 的话)。有关详细信息,请参阅 ESQL 产品出版物。