2012-09-04 29 views
1

我有一個數據庫,其中有許多表結構相同並具有相同列名的表。許多表的一個結果集DBIx :: class

 
Table 1 
col1 
col2 
col3 

Table 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}); 

這很好。但是寫結果和結果集呢?我不想寫很多,在一個實例中,幾十個ResultSets基本上是在不同的表上相同的東西。

有沒有什麼辦法可以編寫一個ResultSet,它將一個表作爲參數並根據這個參數進行查詢?我試圖編寫一個'Global'ResultSet,但是得到一個錯誤,那個名字沒有結果。

是否有可能使用DBIx :: Class這種設置?

在此先感謝。

回答

0

我建議你編寫一個適用於每個ResultSet類的Moose角色。

+0

謝謝。我花了一些時間閱讀Moose角色,並發現了這篇文章[鏈接](http://www.catalystframework.org/calendar/2010/22)。我認爲這讓我走向了正確的方向。 – user1646040