• Ubuntu下erlang连接SQL SERVER 2008


    erlang连接SQL Server使用ODBC方法,但在网络上还是缺少资料,自己折腾了2天才成功。现在特记录下来,以供大家借鉴。

    基本思路是 erlang odbcserver + unixodbc + freetds,本文完全参考了Install ODBC and MS SQL Server Client for Erlang,大家可以移步看看。

    1.SQL Server 2008安装

    网上安装SQL Server 2008很多,我参考的是Win7 系统上安装SQL Server 2008一步一步图解教程

    2.使用用户密码登陆SQL Server 2008

    安装完成后,只能通过安装电脑上面的用户登陆,不方便erlang连接,要添加用户和密码登陆。我参考的是sqlServer无法使用SQL Server Authentication身份登陆的解决方法

    3.参考Install ODBC and MS SQL Server Client for Erlang安装驱动文件

    apt-get install freetds-bin freetds-dev tdsodbc

    注意:我使用的是ubuntu系统,我也在centos安装freetds过,不过centos的官网没有收录freetds软件,要通过rpmforge来获得。大家绕道。

    4.编辑freetds.conf文件和/etc/odbc.ini文件

    打开/etc/freetds/freetds.conf文件,找到egServer70关键字,把下面的ntmachine.domain.com改为你要连接的IP主机,例如192.168.0.95。

    然后把/etc/odbc.ini里面的Servername改为egServer70.

    然后像Install ODBC and MS SQL Server Client for Erlang里面,erlang可以通过odbc连接SQL Server 2008吧。

    Install ODBC and MS SQL Server Client for Erlang里面没说要修改这2个地方,我当时就折腾了很久,导致一直没连接上。

    5.ejabberd对SQL Server的事务支持。

    在ejbberd里面,不像mysql有事务操作指令,对SQL Server的事务支持完全是基于SQL Server的存储过程。

    也就是说,编写一个SQL Server的存储过程,执行到SQL Server的一个数据库里面,然后erlang通过调用这个存储过程来完成事务的支持。大家仔细留意ejabberd项目里面的odbc_queries.erl就可以发现EXECUTE dbo.xxx等代码,这些就是调用SQL Server的存储过程。

    以前没仔细用过SQL Server,现在发现SQL Server在使用方面还是很方便的,对程序员很友好,就不知道实际上的性能等其他问题了。

    2013-12-16补充:

    6.数据乱码

    在使用的过程中遇到了乱码的情况,调试了很久才发现,原来在freetds里面就可以配置的。

    在/etc/freetds/freetds.conf里面,首先是[global]块。在[global]下面添加下面配置选项就可以解决乱码问题。

    client charset = UFT-8
  • 相关阅读:
    WCF和SOA的简介
    .NET 反射应用
    ASP.NET---如何使用web api创建web服务
    获得N位数字字母随机组合
    git的初步使用
    js贪吃蛇
    python多线程
    2013-12-13
    2012-12-12
    2013-12-5
  • 原文地址:https://www.cnblogs.com/getong/p/3474539.html
Copyright © 2020-2023  润新知