Solo intento comprender el propósito de open-global y with-results de clojureql. Comencé leyendo este resumen: How does ClojureQL compare to clojure.contrib.sql?clojureql, open-global y with-results
Pensé por algún motivo que open-global reemplazaría a sql/with-connection, por ej. Pensé que esto funcionaría:
(def db {...}) ; connection details omitted
(open-global db)
(println (:name (first @(table :users)))
Sin embargo, esto no funciona. Parece que necesito hacer open-global y envolver la consulta de ejecución en un (sql/with-connection db), lo que me sorprendió (pensé que open-global proporcionaba una conexión predeterminada globalmente accesible). Entonces dado que ese no parece ser el caso, ahora me pregunto exactamente qué hace.
Además ... ¿cómo se diferencian los resultados de simplemente la ejecución de la consulta con @? Porque parece que @ (table: users) me dejará con una secuencia que es el resultado de ejecutar la consulta (¿no es lo que hace también with-results)?
un poco más de información, en las pruebas He encontrado que si uso con resultados, entonces open-global funciona, pero si uso deref/@, entonces necesita conexión con conexión (y open-global, extrañamente ...) Verifico el irc, y gracias por la respuesta detallada! – Kevin