开发者社区> 问答> 正文

odbc在Erlang都应用?报错

最近接触要在应用中嵌入odbc,一切准备就绪,tsql跟isql命令都能正常使用,但是一进入到Erlang程序,调用如下语句时odbc:connect("DSN=test;UID=sa;PWD=",[]),就会报错,

{error,port_program_executable_not_found}。找了很多资料都没有相关的解释,求大侠帮忙

展开
收起
爱吃鱼的程序员 2020-06-14 20:26:32 467 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    大侠哪里去了<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/5.gif"alt="">是不是你在erlang没有初始化(或者说没有open、没有active)ODBC的驱动?有,在Erlang初始化是application:start(odbc)或者odbc:start()吧,但是一链接就会报错windows的东西一般是先init,再start。不用,直接启动就行了

    这类的东西直接看源码就行了啊。odbc.erl中的

    <preclass="brush:html;toolbar:true;auto-links:false;">%%-------------------------------------------------------------------------%%init(Args)->{ok,State}|{ok,State,Timeout}|{stop,Reason}%%Description:Initiatestheerlangprocessthatmanagestheconnection%%       andstartstheport-programthatusetheodbcdriver%%tocommunicatewiththedatabase.%%-------------------------------------------------------------------------init(Args)->  process_flag(trap_exit,true),  {value,{client,ClientPid}}=lists:keysearch(client,1,Args),     erlang:monitor(process,ClientPid),     Inet=casegen_tcp:listen(0,[inet6])of   {ok,Dummyport}-> gen_tcp:close(Dummyport), inet6;   _-> inet end,  {ok,ListenSocketSup}=gen_tcp:listen(0,[Inet,binary,{packet,?LENGTH_INDICATOR_SIZE}, {active,false},{nodelay,true}]),  {ok,ListenSocketOdbc}=gen_tcp:listen(0,[Inet,binary,{packet,?LENGTH_INDICATOR_SIZE}, {active,false},{nodelay,true}]),  %%Starttheportprogram(acprogram)thatutilizestheodbcdriver   caseos:find_executable(?SERVERPROG,?SERVERDIR)ofFileNamewhenis_list(FileName)->  Port =open_port({spawn,FileName},   [{packet,?LENGTH_INDICATOR_SIZE},binary,   exit_status]),  State=#state{listen_sockets=  [ListenSocketSup,ListenSocketOdbc], erlang_port=Port,owner=ClientPid},  {ok,State};false->  {stop,port_program_executable_not_found}  end.




    应该是找不到odbcserver了,你的odbc驱动安装了没有啊,看看erlang/lib/odbc-x.x.x/priv/bin/下面呢

    odbc下没有priv文件夹,这是没装的节奏,请问下要这个驱动是单独装的吗,battyman,谢谢了

    isql和tsql命令都能连上数据库的,这是怎么回事啊,求大腿<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/6.gif"alt="">

    2020-06-14 20:26:51
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载