2

set ARITHABORT ONCatalyst の DBIx::Classに必要です。私はこのようにできるかどうかわかりません:

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

MS SQL Server 2008 で次のエラーが発生しました。

次の SET オプションの設定が正しくないため、SELECT が失敗しました: 'ARITHABORT'。SET オプションが、計算列のインデックス付きビューやインデックス、クエリ通知、xml データ型メソッドで使用するのに適切であることを確認します。

Catalyst でそのようなオプションを設定するためのベスト プラクティスは何ですか?

4

2 に答える 2

4

データベース モデル内で、パッケージの構成のconnect_infoon_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' ] },
    ]
);
于 2013-01-18T23:11:37.960 に答える
0

あなたが投稿したエラーはCatalystエラーではなく、SQL Serverが特定の設定を特定の方法で設定する必要があることを伝えています。たとえば、XML を照会する場合、これが必要です。したがって、Catalyst の観点からは、すべてが正しく行われています。

于 2013-01-18T23:07:18.680 に答える