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-

Ubuntu下erlang连接SQL SERVER 2008的更多相关文章

  1. ASP .Net Core 在 CentOS8 ARM 下连接 SQL Server 2008 R2(Hypervisor)

    本文主要记录在 ARM 系统下无法连接SQL Server 2008 R2 的解决过程. 解决方案是使用 ODBC 的方式连接数据库,进行操作. 手上有公司的华为鲲鹏云计算 ARM 架构的 CentO ...

  2. php连接sql server 2008数据库

    原文:php连接sql server 2008数据库 关于php连接sql server 2008的问题,2000的版本可以直接通过php中的配置文件修改,2005以上的版本就不行了,需要使用微软公司 ...

  3. phpstudy连接SQL Server 2008数据库 以及 php使用sql server出现乱码解决方式

    开始也尝试自己配置php安装环境,找到一个详细的百度经验http://jingyan.baidu.com/article/154b46315242b328ca8f4101.html,前面有问题也一一去 ...

  4. Java连接Sql Server 2008的简单数据库应用

    1.从微软官网下载JDBC驱动包 sqljdbc_4.0.2206.100_chs.exe,双击解压文件到指定目录,我的指定目录是: C:\Program Files\Microsoft JDBC D ...

  5. PHP5.6.15连接Sql Server 2008配置方案

    php5.6的如果想连接Sql Server 2008数据库,需要手动配置扩展和安装一个驱动. 下载SQL Server Driver for PHP的扩展包,64位系统的官方不支持,找到一个非官方的 ...

  6. Windows Server 2003 Sp2 下无法安装SQL Server 2008 Management Studio Express问题

    Windows Server 2003 Sp2 下无法安装SQL Server 2008 Management Studio Express问题钉子 发表于 2010-5-22 1:42:51问题描述 ...

  7. 连接SQL SERVER 2008需要加端口号

    VC2010 ADO 连接SQL SERVER 2008,127.0.0.1,1433,要加上端口,否则连不上.注意:地址和端口之间使用逗号隔开. 连接SQL SERVER 2000可以不加端口号,使 ...

  8. 配置MyEclipse+Hibernate连接Sql Server 2008出错

    下文主要是讲述最近配置MyEclipse连接Sql Server 2008时遇到的一个问题,而不关注如何配置Sql Server 2008支持TCP/IP连接.Hibernate如何操作Sql Ser ...

  9. 如何用SQL SERVER 2005连接SQL SERVER 2008

    原先使用sql server 2005数据库,后来由于工作需要升级为sql server 2008 开发版,升级过程很简单,基本没有什么问题 下面主要说说,如何使用sql server 2005 st ...

随机推荐

  1. SST-超级简单任务调度器结构分析

    SST(Super Simple Task) 是一个基于任务优先级.抢占式.事件驱动.RTC.单堆栈的超级简单任务调度器,它基于Rober Ward一篇论文的思想,Miro Samek用C重新编程实现 ...

  2. 常用贴片三极管型号与丝印的对应关系(SOT23)

    个人常用贴片三极管型号与丝印的对应关系(SOT23): 丝印:Y1          型号:8050,NPN型三极管 丝印:Y2          型号:8550,PNP型三极管 丝印:L6     ...

  3. Lambda实战(多练习)

    import org.junit.Test; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; ...

  4. Go语言中的运算符

    ## 1 概述Go语言提供了,算术,关系,逻辑,位,指针,赋值运算符.本篇整体说明一下. ## 2 算术运算 * \+ 相加* \- 相减* \* 相乘* / 相除* % 求余* ++ 自增* \-\ ...

  5. 成都优步uber司机第五组奖励政策

    7月14日,成都优步uber团队发布了第五组用户分组.在传言要推出第四组的时候,心想事不过三吧,意外,现在第五组都出来了.一起看看成都优步司机第五组的详细内容!滴滴快车单单2.5倍,注册地址:http ...

  6. 北京Uber优步司机奖励政策(11月9日~11月15日)

    用户组:人民优步“关羽组”(适用于11月9日-11月15日)奖励政策: 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月 ...

  7. P2934 [USACO09JAN]安全出行Safe Travel

    P2934 [USACO09JAN]安全出行Safe Travel https://www.luogu.org/problemnew/show/P2934 分析: 建出最短路树,然后考虑一条非树边u, ...

  8. CakePHP中回调函数的使用

    我们知道模型主要是用来处理数据的,有时我们想在模型操作之前或之后做一些额外逻辑处理,这时候就可以使用回调函数. 回调函数有很多种,beforeFind,afterFind,beforeValidate ...

  9. Shader-水流效果

    效果图:(贴图类似于泥石流) 代码: Shader "CookbookShaders/Chapter02/ScrollingUVs" { Properties { _MainTin ...

  10. Response对象及常用方法

    void addCookie(Cookie cookie)给客户端添加一个Cookie对象,以保存客户端的信息 void addDateHeader(String name,long value) 添 ...