【问题标题】:How to set sql options on DBIx::Class in Catalyst如何在 Catalyst 中的 DBIx::Class 上设置 sql 选项
【发布时间】:2013-01-02 18:05:15
【问题描述】:

对于 Catalyst 上的 DBIx::Class,我需要 set ARITHABORT ON。 我不确定我是否可以这样做:

$source->storage->do("set ARITHABORT ON");

我从 MS SQL Server 2008 收到此错误:

SELECT 失败,因为以下 SET 选项不正确 设置:'ARITHABORT'。验证 SET 选项是否正确使用 在计算列和/或查询上具有索引视图和/或索引 通知和/或 xml 数据类型方法。

在 Catalyst 中设置此类选项的最佳做法是什么?

【问题讨论】:

    标签: sql sql-server perl catalyst dbix-class


    【解决方案1】:

    您发布的错误不是 Catalyst 错误,而是 SQL Server 告诉您需要以特定方式设置某些设置。例如,查询 XML 时,需要this。所以,从 Catalyst 的角度来看,你做的一切都是正确的。

    【讨论】:

    • 是的,我在问,如何在 Catalyst 中为 MSSQL 正确设置此选项?如何在 Catalyst 中正确初始化 DBIx?
    【解决方案2】:

    在您的数据库模型中,您可以在 connect_info 中为包的配置设置 on_connect_do 属性。

    这是一个例子:

    __PACKAGE__->config(
        schema_class => 'Your::Schema',
        connect_info => [
            'dbi:ODBC:server=my.host.name;port=1433;driver=FreeTDS;tds_version=8.0',
            'username',
            'password',
            undef,
            { on_connect_do => [ 'SET ARITHABORT ON' ] },
        ]
    );
    

    【讨论】:

    • 谢谢。这正是我要问的。
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 2011-06-18
    • 2011-01-16
    • 2017-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    相关资源
    最近更新 更多