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. mysql8.0新增用户及密码加密规则修改

    MySQL8.0已经发布GA版,当前最新GA版本为8.0.12.虽然相对于之前版本,MySQL8.0没有加入新元素,但是,经过代码重构,MySQL8.0的优化器更加强大,同时也有一些新特性,如支持索引 ...

  2. Struts2+EasyUI+Hibernate小实例

    概述 这个实例主要是前台数据到后台数据的传递和后台数据到前台数据的传递,完成数据的新增,以及对新增数据的展示.下面是详细的过程: Hibernate(数据库部分) 这里只是数据库的连接和数据库实体与物 ...

  3. STM32(1)——使用Keil MDK以及标准外设库创建STM32工程

    转载来自:http://emouse.cnblogs.com 1.1 开发工具与开发环境 1. 软件版本 本节所使用Keil MDK 为目前的最新版V4.21.其他版本差别不大,读者可以根据自己使用的 ...

  4. 基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ

    基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ 0. 导语 学习进入到了下一个阶段,还是以AD9833为例,这次学习是向设备申请中断,实现触发,在未来很多场景,比如做用 ...

  5. python 自定义函数表达式 拟合求系数

    https://docs.scipy.org/doc/scipy/reference/tutorial/integrate.html https://docs.scipy.org/doc/scipy/ ...

  6. Leecode刷题之旅-C语言/python-169求众数

    /* * @lc app=leetcode.cn id=169 lang=c * * [169] 求众数 * * https://leetcode-cn.com/problems/majority-e ...

  7. 如何在VMware Fusion中导入windows下的虚拟机

    最近换了新款的mbp,因为偷懒,便将之前在windows台式机上的虚拟机搬了过来. 特此记录下搬运过程,方便以后查看. 一 操作过程 安装激活VMware 常规操作,无需赘言 拷贝windows下虚拟 ...

  8. AMD,CMD,CommonJs,UMD讲解

    一.CommonJS CommonJS规范加载模块是同步的,只有加载完成,才能执行后面的操作 CommonJS规范中的module.exports和require 每个文件就是一个模块,有自己的作用域 ...

  9. JavaScript预解析

    定义:JavaScript"预解析",可以理解为把变量或函数预先解析到它们被使用的环境中. 通俗点讲,即认为浏览器在正式运行JavaScript代码前, 第一步,会预先根据关键字v ...

  10. ant-design form

    表单配置 示例代码 import { Form } from 'antd'; const FormItem = Form.Item; class NormalLoginForm extends Rea ...