2016-05-25 8 views
0

1)私はルミナスアプリを持っています。私は1回のdb接続で複数のdb要求を実行したい、つまり、接続を2回目に開かなくてもいいということです。私はデシベル/ GET-シングルの物品が実行されているのと同じDB接続内で、何か他のもの、たとえば、DB/GET-何か-ELSEを実行したいClojure/Luminus/ComposureでSQLを操作する

(defn page1 [id] 
    (layout/render "page1.html" 
    (my-var1 (db/get-single-article {:id (Integer/parseInt id)})))) 

: は今、私はこれを持っています。どうやって?

リソースで

2)/ SQL/queries.sql私はこの:それはデシベル/取得・シングルの記事をコール内で実行されますように、私はこの1つの以上のクエリを追加することができますどのように

-- :name get-single-article :? :1 
-- :doc retrieve an article given the id. 
SELECT * FROM article 
WHERE id = :id 

と別の結果セットを返しますか?このように:

-- :name get-single-article :? :1 
-- :doc retrieve an article given the id. 
SELECT * FROM article 
WHERE id = :id 

select * from another_table 
where ... 

db/get-single-articleを呼び出すときに、どのようにナビゲートできますか?

答えて

2

先に行くと、お使いのSQLファイルで2番目のクエリを定義します。

-- :name get-something-else :? :* 
select * from another_table where ... 

次に、このようなもので、両方のクエリのクエリ結果を割り当てる:

(defn page1 [id] 
    (layout/render "page1.html" 
    {:my-var1 (db/get-single-article {:id (Integer/parseInt id)}) 
    :my-var2 (db/get-something-else)})) 
+0

が、それは2つの異なるクエリのだろう。 2つの結果セットを返す1も欲しいです。 –

+0

それはちょうどそれがいかに働くかではない。 1つのクエリ= 1つの結果セット。 db関数の両方を呼び出してそれらを返す別々のラッパー関数を作成する場合は、そうすることができます。 –

+0

それは何の限界ですか、connmanまたは何ですか? –

関連する問題