2013-01-18 57 views
2

對於Catalyst上的DBIx :: Class,我需要set ARITHABORT ON。 我不知道我能做到這一點的方法:如何在Catalyst上設置DBIx :: Class上的sql選項

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

我從MS SQL Server 2008的這個錯誤:

SELECT失敗,因爲以下的SET選項不正確 設置:「ARITHABORT 」。驗證SET選項在使用 以及計算列上的索引視圖和/或索引和/或查詢 通知和/或xml數據類型方法時是否正確。

在Catalyst中設置這些選項的最佳實踐是什麼?

回答

4

在您的數據庫模型的內部,您可以在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' ] }, 
    ] 
); 
+0

謝謝。這正是我所問的。 – alex

0

您發佈的錯誤不是Catalyst錯誤,而是SQL Server告訴您需要某些特定方式設置某些設置。例如,在查詢XML時,您需要this。所以,從Catalyst的角度來看,你做的一切都是正確的。

+0

是的,我在問,如何在催化劑正確設置這個選項爲MSSQL?如何在Catalyst中正確初始化DBIx? – alex

相關問題