1

同じ構造で同じ列名を持つ多くのテーブルを持つデータベースがあります。

表1
col1
col2
col3

表 2
col1
col2
col3

等々。

このタイプのセットアップで DBIx::Class と Catalyst を使用する方法を学ぼうとしています。

通常、次のようなサブルーチンがあります。

sub query{
my($table) = @_;
$sql = "SELECT col1 FROM $table;";
$qh=$connect->prepare($sql) or die print $DBI::errstr;
$qh->execute() or die print $DBI::errstr;
}

...結果の取得など

コントローラーからのやり方は思いつきます。

my $table = "DB::Table1";
my $result = $c->model($table)->create({col1 => $col1, col2=>$col2});

それはいいです。しかし、Results と ResultSets の書き込みについてはどうでしょうか? 私は多くを書く必要はありません.1つのインスタンスでは、本質的に同じものである何十ものResultSetを別のテーブルに書きます。

パラメータとしてテーブルを受け取り、それに基づいてクエリを実行する ResultSet を作成する方法はありますか? 「グローバル」ResultSet を書き込もうとしましたが、その名前の結果が存在しないというエラーが発生しました。

この種のセットアップで DBIx::Class を使用することは可能ですか?

前もって感謝します。

4

1 に答える 1

0

各 ResultSet クラスに適用する Moose ロールを作成することをお勧めします。

于 2012-09-04T13:55:49.810 に答える