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. QQ空间运营 怎么做一个QQ人气号?

    QQ空间,用户太年轻,他们渐渐长大. 空间,用户消费水准偏低,貌似很难开发,除非玩灰链,否则同等人气,和微信比起来,一个地下,一个天上. 然而,他们快要长大,即将成为消费主力军,难免会转移微信,但情怀 ...

  2. Java使用zxing生成解读QRcode二维码

    1.maven的pom配置jar包,如果不实用maven请手动下载jar包 <dependency> <groupId>com.google.zxing</groupId ...

  3. centos系统安装后无法稳定连接wifi的解决方法

    在安装双系统的时候遇到的问题,虽然不知道原理,但是弄好能用就可以,这类bug太邪恶了 wifi不能用的情况: 先查看wifi状态: rfkill list all 0: hci0: Bluetooth ...

  4. 在线升级python3.3版本

    1.sudo su 2.wget -P /usr/local  http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz    #指定下载到目录/ ...

  5. Flask基本介绍

    Fask 1.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架对于Werkzeug本质是socket服务端,其用于接收http ...

  6. Java两个线程实现交替运行-以交替打印奇偶数为例

    本文旨在两个线程交替运行,不多哔哔直接看代码吧 public class Work2 { static final Object object = new Object(); public stati ...

  7. 【HDOJ-1081】To The Max(动态规划)

    To the Max Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem ...

  8. [原创]用python实现系统状态监测和故障转移

    #coding: utf-8 import socket import select import time import os import threading def ser(): s = soc ...

  9. 【LG2481】[SDOI2011]拦截导弹

    [LG2481][SDOI2011]拦截导弹 题面 洛谷 题解 可以看出第一问就是一个有关偏序的\(LIS\),很显然可以用\(CDQ\)优化 关键在于第二问 概率\(P_i=\) \(总LIS数\) ...

  10. java 编码二进制写法、十六进制用源代码表示

    二进制: int a = 0b10; a其实=2 八进制: int a = 01; a其实=8 十六进制: int a = 0x1; a其实=16