使用 IBM.Data.DB2-driver 将 Collat​​ion order 更改为 DB2 for IBM i

Changing Collation order with IBM.Data.DB2-driver to DB2 for IBM i

我们有数百个网络应用程序需要支持本地化。我们的后端是 Asp.net Web API 与旧版 DB2 for IBM i 的组合。

为了从 C# 连接到 DB2,我们使用 IBM Data Server Client 10.5 FP5 包 -> 托管 .Net 驱动程序。

通过 Client Access for System i-package 中的原生 .Net 驱动程序,支持传递附加关键字 (SortSequence/Language) 和 ConnectionString。

要具有与 IBM.DATA 类似的功能。已提出 DB2 驱动程序功能请求,但似乎没有任何商业理由,因为它似乎根本没有进展。

https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=56495

有谁知道将区域性信息选择连同其余的数据库连接信息传递给 DB2 for IBM i 的其他方法吗? (职位描述,db2dsdriver.cfg,db2cli.ini)

Br, 河童

虽然似乎所有其他驱动程序都支持整理参数,但我都没有找到,包括 Java 工具箱。

我使用的解决方法是根据排序顺序的语言规范设置用于连接池的用户配置文件。

在我们的案例中,对于法裔加拿大人,以下 USRPRF 值是 SRTSEQ(*LANGIDSHR) 朗(FRC)

*LANGIDSHR 在数据库世界中表示不区分大小写、不区分重音。此参数的默认值为 *HEX,通常通过 *SYSVAL QSRTSEQ 设置。您可能还想更改 *LANGIDSHR 的 SYSVAL,但我并没有真正试验对遗留应用程序的影响。

您不能以编程方式使用排序规则,但仍然可以创建您需要不同排序规则并在它们之间切换的尽可能多的用户。

重要警告:如果您创建索引以加快访问速度,则必须注意索引创建会对索引创建者用户的实际排序规则做出反应。如果 DBA 用户配置文件显示 SRTSEQ *HEX(默认值),您的索引将被创建为 SRTSEQ *HEX,并且不能被 SRTSEQ *LANGIDSHR 中建立的连接使用。我们花了很长时间才弄清楚为什么有时使用我们的索引,有时不使用。我们 ended-up 在过渡期间在 *HEX 和 *LANGIDSHR 中创建我们的索引,直到每个人都设置为 *LANGIDSHR。任何逻辑文件、索引或视图的排序序列都可以在 DSPFD 中轻松找到,搜索 SRTSEQ 属性。