Packages
tds
2.0.0
2.3.8
2.3.7
2.3.6
2.3.5
2.3.4
2.3.2
2.3.1
2.3.0
2.3.0-rc.1
2.3.0-rc.0
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
2.0.4
2.0.3
2.0.2
2.0.1
2.0.1-rc2
2.0.1-rc1
2.0.0
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.0
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.0
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Microsoft SQL Server client (Elixir implementation of the MS TDS protocol)
Retired package: Release invalid - not compliant with ecto_sql mssql adapter
Current section
Files
Jump to
Current section
Files
lib/tds.ex
defmodule Tds do
alias Tds.Query
@timeout 5000
@execution_mode :prepare_execute
def start_link(opts \\ []) do
DBConnection.start_link(Tds.Protocol, default(opts))
end
def query(pid, statement, params, opts \\ []) do
query = %Query{statement: statement}
opts = Keyword.put_new(opts, :parameters, params)
case DBConnection.prepare_execute(pid, query, params, opts) do
{:ok, _query, result} -> {:ok, result}
{:error, err} -> {:error, err}
end
end
def query!(pid, statement, params, opts \\ []) do
query = %Query{statement: statement}
opts = Keyword.put_new(opts, :parameters, params)
case DBConnection.prepare_execute(pid, query, params, opts) do
{:ok, _query, result} -> result
{:error, err} -> raise err.mssql.msg_text
end
end
def prepare(pid, statement, opts \\ []) do
query = %Query{statement: statement}
case DBConnection.prepare(pid, query, opts) do
{:ok, query} -> {:ok, query}
{:error, err} -> {:error, err}
end
end
def prepare!(pid, statement, opts \\ []) do
query = %Query{statement: statement}
case DBConnection.prepare(pid, query, opts) do
{:ok, query} -> query
{:error, err} -> raise err.mssql.msg_text
end
end
def execute(pid, query, params, opts \\ []) do
case DBConnection.execute(pid, query, params, opts) do
{:ok, q, result} -> {:ok, q, result}
{:error, err} -> {:error, err}
end
end
def execute!(pid, query, params, opts \\ []) do
case DBConnection.execute(pid, query, params, opts) do
{:ok, _q, result} -> result
{:error, err} -> err.mssql.msg_text
end
end
def close(pid, query, opts \\ []) do
case DBConnection.close(pid, query, opts) do
{:ok, result} -> {:ok, result}
{:error, err} -> {:error, err}
end
end
def close!(pid, query, opts \\ []) do
case DBConnection.close(pid, query, opts) do
{:ok, result} -> result
{:error, err} -> err.mssql.msg_text
end
end
def transaction(pid, fun, opts \\ []) do
DBConnection.transaction(pid, fun, opts)
end
@spec rollback(DBConnection.t, reason :: any) :: no_return
defdelegate rollback(conn, any), to: DBConnection
def child_spec(opts) do
DBConnection.child_spec(Tds.Protocol, default(opts))
end
defp default(opts) do
opts
|> Keyword.put_new(:idle_timeout, @timeout)
|> Keyword.put_new(:execution_mode, @execution_mode)
end
end