2013-02-03 30 views
0

我正在嘗試做一個簡單的Rose數據庫調用: $ id = xyz; $ name =「company」;如何在get Manager調用中傳遞查詢的變量?

DataB::testTable::Manager->get_testTable(query =>[ id => $id, name => $name ]); 

在有可能不會寫,每次整個查詢,並宣佈它像一個字符串變量,這樣我可以叫

DataB::testTable::Manager->get_testTable(query =>[ $query ]); 

其中$查詢= QQ {ID => $ id,name => $ name};

請幫助

+0

這種說法('查詢=> [ID => $ ID,名稱=> $名]')看起來像一個包含數組的鍵「query」的散列。是這樣嗎? – InnovWelt

+0

是。我可以說明的最好方法是「散列稱爲查詢」 – rsharma

+0

嘗試編輯的答案! – InnovWelt

回答

0

嗯,事實上我想出如何做到這一點。它並不複雜。 RoseDB對象只需要查詢的數組引用。所以像這樣的工作:

my @query =(id => $ id,name => $ name);

testDB::testTable::Manager->get_testTable(query => \@query); 

只是覺得會回答它自己,櫃面someonelse正在尋找解決這一

0

通過什麼我明白從你的問題,我給這個答案。 試試這個。

my $myquery = {query =>{ id=>$id, name=>$name }} ; 

TGI::testTable::Manager->get_testTable($myquery); 

希望,這給一些想法給你。

編輯爲 「散列與數組參考」:

my $myquery = [ id=>$id, name=>$name ] ; 

TGI::testTable::Manager->get_testTable(query => $myquery); 

看看這個:How to pass a a string variable as "query" for get Manager call?

+0

雅我試過這個,但顯然它說無效的參數 – rsharma