2017-10-27 5 views
1

Ich versuche rohe SQL-Abfrage mit Elixir,Schließen Postgres Transaktion - Elixir

Postgres Verbindung öffnet und Transaktion erfolgreich

Aber danach, Abfrage Transaktion endet nicht, bleibt sie im Standby-Zustand.

qry = "select id from table where id = 1" 
{:ok, pid} = Postgrex.start_link(
       hostname: "localhost", 
       username: "user", 
       password: "password", 
       database: "db", 
       pool_size: 100) 

Postgrex.query!(pid, qry, []) 

In Postgres,

PID  Query status 
2323 qry  Idle 

Wie die Transaktion nach Abschluss der Ausführung zu schließen.

+0

_Sidenote: _ Sie dementsprechend diejenigen Lesen Sie die Fragen aus nicht-so-großen Bildschirmen, Formatlinien respektieren. – mudasobwa

Antwort

0

So, Postgrex.query!/4 führt eine erweiterte Abfrage. Sie können eine erweiterte Abfrage mit Postgrex.close!/3, schließen aber sieht aus wie nur auf diese Weise:

{:ok, conn} = Postgrex.start_link([]) 
query = Postgrex.prepare!(conn, :query_name, "SELECT * ....") 
result = Postgrex.query!(conn, query, []) 
Postgrex.close!(conn, query) 
+0

Funktion Postgrex.close/1 ist undefined oder private –

+0

Meine schlechte ... Ich aktualisierte die Antwort – bschaeffer

+0

Ergebnis = Postgrex.query! (Conn, Abfrage, []) => wirft Argument Fehler _ (ArgumentError) Argument Fehler: Erlang .iolist_to_binary (% Postgrex.Query {column ... _ –

Verwandte Themen