繁体   English   中英

如何在Ruby应用程序中连接到Pervasive SQL Server?

[英]How to connect to Pervasive SQL server in Ruby Application?

我正在尝试从Ubuntu计算机上的Ruby应用程序连接到Windows计算机上运行的Pervasive Sql Server。 有人可以帮我吗? 提前致谢

以下是我在linux机器上的配置

/etc/freetds/freetds.conf

[pserver]
  host = XXX.XXX.XX.XXX
  port = 1583
  tds version = 8.0

在/etc/odbcinst.ini下,我保存了如下驱动程序信息

[freetds]
  Description=freetds Driver
  Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
  Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
  Trace=Yes
  TraceFile=/tmp/freetds.log
  ForceTrave=Yes
  UsageCount=10
  fileusage=1
  dontdlclose=1
  TDS_Version = 8.0

在/etc/odbc.ini中,客户端和数据库详细信息

[pclient]
    Description     = Pervasive SQL Server
    Driver          = freetds
    Trace           = Yes
    Servername      = pserver
    Port            = 1583
    Database        = "MyDatabasename"
    TDS_Version     = 8.0
 tsql -S pserver -U db_username -P db_password -d MyDatabasename 

上面的cmd给出错误,提示错误20009(严重性9):无法连接:Adaptive Server不可用或不存在OS错误111,“连接被拒绝”连接到服务器时出现问题

  iodbctest ["DSN=pclient;UID=db_username;PWD=db_password"] 
this results in
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0812.0326

(iodbctest:6672): Gtk-WARNING **: 20:40:38.693: cannot open display:

无法理解上述结果以及如何处理。 请帮忙

据我所知,从Ruby访问Pervasive PSQL的唯一方法是通过ODBC。 您需要使用Pervasive Client ODBC驱动程序。 不要使用FreeTDS驱动程序。 我从未听说过使用FreeTDS驱动程序连接到Pervasive PSQL。 实际上,这个问题提到FreeTDS不适用于Pervasive PSQL。 普及型PSQL和Microsoft SQL Server不是同一产品,其中一个的客户端无法连接到另一个的服务器。

简短的答案是在Ubuntu计算机上安装Pervasive PSQL客户端,在Windows计算机上创建指向数据库的ODBC数据源名称,然后在Ruby中使用ODBC来访问数据。
您需要至少使用Pervasive PSQL v11.30,最好是Actian PSQL v13(截至2018年12月的当前版本)。 您需要下载并安装适合该应用程序的客户端。 如果Ruby应用程序是32位的,则需要32位的ODBC驱动程序。 如果应用程序是64位,则需要64位驱动程序。 操作系统的“位”并不那么重要。 您需要使用与服务器版本相同的PSQL客户端版本。 您不能将v13客户端与v11服务器一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM