`
stworthy
  • 浏览: 526187 次
  • 来自: ...
社区版块
存档分类
最新评论

Erlang To ADO.NET

阅读更多

Erlang访问关系数据库的方式极为有限,目前似乎只有ODBC。使用ODBC时有时候会莫名其妙地出现一些错误,很难查找原因。故写了一个ADO.NET的数据访问模块,以期在项目中使用,感觉还不错。

现介绍一下基本使用情况,使用前必须设置一下环境变量set ARCHDIR=windows,然后:

application:start(adonet)

 

然后,连接数据库:

    {ok, Ref} = adonet:open("User ID=sa;Data Source=192.168.1.133;Password=soft123456;Initial Catalog=trade;Provider=SQLOLEDB.1;"),

 

查询数据:

adonet:select(Ref,"select name,id,code from goods where id>?",[3])

 

成功执行将返回:

{ok,["name","id","code"],
    [{"ddd",4,"332"},
     {"微波炉",5,"004"},
     {[],6,"005"},
     {"er",7,"006"},
     {"液晶电视",8,"098"},
     {"洗衣机",9,"007"},
     {"TCL电脑",10,"008"},
     {"名称\nabc",11,"001"}]}

 

 

插入,删除待操作可以使用do,例如:

adonet:do(Ref, "insert into goods(name,code) values(?,?)",
["name1","001"])

 

目前仅实现select和do二个函数,其他的以后慢慢再完成。

 

分享到:
评论
2 楼 stworthy 2008-01-30  
<p>增加了对事务的支持:</p><p>1、开始事务</p><pre name='code' class='java'>{ok} = adonet:begin_transaction(Ref).</pre><p> </p>2、提交事务<pre name='code' class='java'>{ok} = adonet:commit(Ref).</pre> 3、回滚事务<pre name='code' class='java'>{ok} = adonet:rollback(Ref)</pre> 基本用法代码如下:<pre name='code' class='java'>start() -&gt;
    application:start(adonet),
    {ok, Ref} = adonet:open("User ID=sa;Data Source=192.168.1.133;Password=soft123456;Initial Catalog=trade;Provider=SQLOLEDB.1;"),
    {ok} = adonet:begin_transaction(Ref),
    case catch(do_something(Ref)) of
        {'EXIT', Reason} -&gt;
            adonet:rollback(Ref),
            io:format("exit:~p~n", [Reason]);
        ok -&gt;
            adonet:commit(Ref),
            io:format("ok\n")
    end.
   
do_something(Ref) -&gt;
    {ok,_} = adonet:do(Ref, "insert into goods(name) values(?)", ["name02"]),
    {ok,_} = adonet:do(Ref, "insert into goods(name) values(?)", ["name03"]),
    ok.
</pre> 
1 楼 stworthy 2008-01-24  
更新了select数据的实现方法,原先用eval,现在改成binary_to_term了,这样速度更快。

相关推荐

    Erlang_to_C

    - **概念介绍**:Turbo Erlang是一种高效的Erlang实现方案,能够将Erlang程序编译成C语言代码,从而接近甚至达到C语言级别的性能。 - **实现原理**:通过高度优化的编译技术和运行时环境,Turbo Erlang能够显著提高...

    erlang语言实现binary_to_term完整代码

    erlang提供了binary_to_term 函数,用于把二进制数据转为原始的erlang数据。这个函数都是c实现的,这里用erlang语言实现了,很有参考价值,其他语言可以参考这个解析erlang二进制协议数据。配套文章地址...

    <27>erlang record

    标题中的“&lt;27&gt;erlang record”可能指的是Erlang编程语言中的Record特性,它是一种数据结构,类似于结构体或者哈希表,用于组织和操作数据。在Erlang中,Record提供了一种方便的方式来定义和访问具有固定字段的数据...

    erlang.net:在VB.NET中编写您的gen服务器-为什么不呢?

    Erlang.NET 在Erlang VM中托管.NET代码? 当然可以,但是这看起来像什么? 好吧-这是用VB.NET编写的Erlang Gen Server Public Class MyGenServerVB Inherits IHandleInfo( Of Msg) Public Sub New () End Sub ...

    erlang文献及资料汇总

    erlang文献及资料汇总 入门资料: erlang中文手册(R11B 文档译文,最适合入门) erlang位运算与二进制解析 erlang二进制高效编程 erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 ...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    Erlang26-windows安装包

    OpenSSL 3 support in Erlang is considered to be mature and ready for production use. Erlang 26.1 and later versions supports FIPS mode on OpenSSL 3 3.12.13 3.12.12 3.12.11 3.12.10 25.0 26.2.x The ...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    Erlang 20.3linux安装包

    echo 'export PATH=$PATH:/path/to/erlang/bin' &gt;&gt; ~/.bashrc source ~/.bashrc ``` 5. **验证安装**:最后,通过运行`erl`命令检查Erlang是否成功安装。 ```bash erl ``` 一旦Erlang安装成功,就可以继续...

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...

    erlang资源

    这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入理解和学习Erlang语言的关键资料。 《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发...

    可在ubuntu上安装erlang的deb包

    This package contains the Erlang/OTP runtime implementation, which is configured and built with HiPE support (allows compiling to native code), and minimal set of Erlang applications: compiler - ...

    RabbitMQ3.9.13和ErLang24.2版本

    4. **客户端库支持**:此版本的RabbitMQ继续兼容并优化了对多种编程语言的客户端库,如Java、Python、Ruby、.NET等,确保开发者可以方便地在各自的应用中集成RabbitMQ。 5. **监控和管理**:RabbitMQ 3.9.13提供了...

    Erlang官网下载过慢

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性和处理大量并发连接的能力而被广泛应用于电信、互联网基础设施和实时系统。RabbitMQ...

    Erlang/OTP 26.2.1

    Erlang/OTP 26.2.1,Erlang,OTP,26.2.1

    Erlang和RabbitMQ安装包

    4. **广泛的语言支持**:RabbitMQ提供了多种编程语言的客户端库,如Java、Python、Ruby、.NET等,便于开发者使用。 5. **持久化**:RabbitMQ可将消息持久化到磁盘,即使服务器重启,消息也不会丢失。 在提供的...

    Erlang23_3.zip

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson于1986年开发,主要用于构建高可用性、分布式系统。Erlang的设计目标是支持大量并发连接,容错性强,易于编写实时系统。Erlang采用actor模型...

    Erlang-win64_20.1

    Erlang是一种高级编程语言,特别为并发、分布式和实时计算系统设计,广泛应用于电信、银行、互联网服务和软件开发。Erlang以其强大的错误恢复能力和容错性著称,其虚拟机(BEAM)允许程序在不停止服务的情况下进行热...

Global site tag (gtag.js) - Google Analytics