Adapter to Microsoft SQL Server. Using DBConnection
and ODBC
.
It connects to Ecto with MssqlEcto.
Mssqlex requires the Erlang ODBC application to be installed.
This might require the installation of an additional package depending on how you have installed
Erlang (e.g. on Ubuntu sudo apt-get install erlang-odbc
).
Mssqlex depends on Microsoft's ODBC Driver for SQL Server. You can find installation instructions for Linux or other platforms on the official site.
This package is availabe in Hex, the package can be installed
by adding mssqlex
to your list of dependencies in mix.exs
:
def deps do
[{:mssqlex, "~> 2.0.0-beta.0"}]
end
Tests require an instance of SQL Server to be running on localhost
and a valid
UID and password to be set in the MSSQL_UID
and MSSQL_PWD
environment
variables, respectively.
The easiest way to get an instance running is to use the SQL Server Docker image:
export MSSQL_UID=sa
export MSSQL_PWD='ThePa$$word'
docker run --name test_mssqlex_server -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=$MSSQL_PWD -p 1433:1433 -d microsoft/mssql-server-linux
- Needs better handling for UUIDs
- Several syntax errors occur under specific conditions (of the form 'syntax error near')
- Many-to-many doesn't seem to return duplicates
- Fails to autogenerate binary_id type
- Limited support for unique constraints
- Doesn't handle no association constraint correctly
- Problems with has_many association on delete
- Migrations can fail when primary keys are changed
- No support for transactions, locks, windows or streams. Can also cause issues for migrations if the programmer runs the migration while other operations are happening on the database.
- Datetime intervals not implemented
- The ambiguity of Transact SQL's order by statement can cause problems in more complex queries see here
- The following error will randomly but rarely occur 'Error in /usr/lib/erlang/lib/odbc-2.12.3/priv/bin/odbcserver': double free or corruption (fasttop): 0x0000000001cb75c0'