Ich versuche gerade, den Zweck von clojureqls open-global und with-results zu verstehen. Ich begann mit dem Lesen dieser Übersicht: Was ist der Unterschied zwischen ClojureQL und clojure.contrib.sql?
Ich dachte aus irgendeinem Grund, dass open-global sql/with-connection ersetzen würde, z. B. dachte ich, dies würde funktionieren:
(def db {...}) ; connection details omitted
(open-global db)
(println (:name (first @(table :users)))
Das funktioniert jedoch nicht. Es scheint, dass ich sowohl open-global tun müssen und wrap die ausführende Abfrage in einem (sql/with-connection db), die Art von überrascht mich (ich dachte, open-global eine Standard global zugängliche Verbindung bereitgestellt). Da dies also nicht der Fall zu sein scheint, bin ich jetzt links fragen genau, was es tut.
Außerdem... wie unterscheidet sich with-results von der einfachen Ausführung der Abfrage mit @? Denn es scheint, dass @(table :users) mich mit einer Sequenz zurücklässt, die das Ergebnis der Ausführung der Abfrage ist (ist es nicht das, was with-results auch tut)?